summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2006-08-03 19:08:34 -0700
committerEric Anholt <anholt@FreeBSD.org>2006-08-03 19:09:10 -0700
commitd15f87110807111ab7d71f1254ebe3dfef1fee80 (patch)
tree22a37caf1473832c42238b714bd2bdd8a7e12e6f /src
parenta79aa0d7b27b0b9b032472776d7dda410fd66a98 (diff)
parentd56ffa5f35e3cf4262d66469052b2122fdb24027 (diff)
Merge branch 'broadwater-video-rehash' into i965
The previous merge wasn't done on a synced-up tree, and missed necessary changes.
Diffstat (limited to 'src')
-rw-r--r--src/i830_video.c21
-rw-r--r--src/wm_prog.h4
2 files changed, 6 insertions, 19 deletions
diff --git a/src/i830_video.c b/src/i830_video.c
index 3cd00fce..e3384dd8 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2704,7 +2704,7 @@ static const CARD32 sf_kernel_static[][4] = {
/* Our PS kernel uses less than 32 GRF registers (about 20) */
#define PS_KERNEL_NUM_GRF 32
-#define PS_MAX_THREADS 1
+#define PS_MAX_THREADS 32
#define BRW_GRF_BLOCKS(nreg) ((nreg + 15) / 16 - 1)
@@ -3067,19 +3067,6 @@ BroadwaterDisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
sf_state->sf6.dest_org_vbias = 0x8;
sf_state->sf6.dest_org_hbias = 0x8;
- /* XXX: Set up the PS kernel (dispatched by WM) for converting YUV to RGB.
- * The 3D driver does this as:
- *
- CONST C0 = { -.5, -.0625, -.5, 1.164 }
- CONST C1 = { 1.596, -0.813, 2.018, -.391 }
- UYV = TEX ...
- UYV.xyz = ADD UYV, C0
- UYV.y = MUL UYV.y, C0.w
- RGB.xyz = MAD UYV.xxz, C1, UYV.y
- RGB.y = MAD UYV.z, C1.w, RGB.y
- *
- */
-
memcpy (ps_kernel, ps_kernel_static, sizeof (ps_kernel_static));
#if 0
ErrorF ("ps kernel: 0x%08x\n", state_base_offset + ps_kernel_offset);
@@ -3097,13 +3084,13 @@ BroadwaterDisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
wm_scratch_offset) >> 10;
wm_state->thread2.per_thread_scratch_space = 0; /* 1024 bytes */
wm_state->thread3.dispatch_grf_start_reg = 3; /* XXX */
+ wm_state->thread3.const_urb_entry_read_length = 0;
+ wm_state->thread3.const_urb_entry_read_offset = 0;
wm_state->thread3.urb_entry_read_length = 1; /* XXX */
- wm_state->thread3.const_urb_entry_read_length = 0; /* XXX */
- wm_state->thread3.const_urb_entry_read_offset = 0; /* XXX */
wm_state->thread3.urb_entry_read_offset = 0; /* XXX */
wm_state->wm4.stats_enable = 1;
wm_state->wm4.sampler_state_pointer = (state_base_offset + src_sampler_offset) >> 5;
- wm_state->wm4.sampler_count = 1; /* XXX 1-4 samplers used */
+ wm_state->wm4.sampler_count = 1; /* 1-4 samplers used */
wm_state->wm5.max_threads = PS_MAX_THREADS - 1;
wm_state->wm5.thread_dispatch_enable = 1;
wm_state->wm5.enable_16_pix = 1;
diff --git a/src/wm_prog.h b/src/wm_prog.h
index a8391c4d..297ddcbf 100644
--- a/src/wm_prog.h
+++ b/src/wm_prog.h
@@ -95,8 +95,8 @@
{ 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
/* mov (8) m4<1>F g7<8,8,1>F { align1 + } */
{ 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
-/* send 0 (16) g12<1>UW g8<8,8,1>UW sampler mlen 5 rlen 8 { align1 + } */
- { 0x00800031, 0x21801d29, 0x008d0100, 0x02580001 },
+/* send 0 (16) g12<1>UW g0<8,8,1>UW sampler mlen 5 rlen 8 { align1 + } */
+ { 0x00800031, 0x21801d29, 0x008d0000, 0x02580001 },
/* mov (8) g19<1>UW g19<8,8,1>UW { align1 + } */
{ 0x00600001, 0x22600129, 0x008d0260, 0x00000000 },
/* add (8) g14<1>F g14<8,8,1>F -0.0627451{ align1 + } */