i965: Fill in the remaining fields of gen5+ sampler default color.
authorEric Anholt <eric@anholt.net>
Wed, 20 Apr 2011 21:03:21 +0000 (14:03 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 23 Apr 2011 20:21:57 +0000 (13:21 -0700)
Still doesn't fix texwrap.

src/mesa/drivers/dri/i965/brw_wm_sampler_state.c

index 8e12e0c0844fa502d8dd23d0dcad75ed4bbd05ec..9ceac5adf055ef9c2e1580c8ab2f41c475e5ad93 100644 (file)
@@ -91,10 +91,20 @@ static drm_intel_bo *upload_default_color( struct brw_context *brw,
       UNCLAMPED_FLOAT_TO_SHORT(sdc.s[2], color[2]);
       UNCLAMPED_FLOAT_TO_SHORT(sdc.s[3], color[3]);
 
-      /* XXX: Fill in half floats */
-      /* XXX: Fill in signed bytes */
-
-      COPY_4V(sdc.f, color);
+      sdc.hf[0] = _mesa_float_to_half(color[0]);
+      sdc.hf[1] = _mesa_float_to_half(color[1]);
+      sdc.hf[2] = _mesa_float_to_half(color[2]);
+      sdc.hf[3] = _mesa_float_to_half(color[3]);
+
+      sdc.b[0] = sdc.s[0] >> 8;
+      sdc.b[1] = sdc.s[1] >> 8;
+      sdc.b[2] = sdc.s[2] >> 8;
+      sdc.b[3] = sdc.s[3] >> 8;
+
+      sdc.f[0] = color[0];
+      sdc.f[1] = color[1];
+      sdc.f[2] = color[2];
+      sdc.f[3] = color[3];
 
       return brw_cache_data(&brw->cache, BRW_SAMPLER_DEFAULT_COLOR,
                            &sdc, sizeof(sdc));