diff options
author | Eric Anholt <anholt@FreeBSD.org> | 2006-08-03 19:08:34 -0700 |
---|---|---|
committer | Eric Anholt <anholt@FreeBSD.org> | 2006-08-03 19:09:10 -0700 |
commit | d15f87110807111ab7d71f1254ebe3dfef1fee80 (patch) | |
tree | 22a37caf1473832c42238b714bd2bdd8a7e12e6f /src | |
parent | a79aa0d7b27b0b9b032472776d7dda410fd66a98 (diff) | |
parent | d56ffa5f35e3cf4262d66469052b2122fdb24027 (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.c | 21 | ||||
-rw-r--r-- | src/wm_prog.h | 4 |
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 + } */ |