blorp/exec: Use uint32_t for copying varying data
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 21 Oct 2016 21:22:10 +0000 (14:22 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 16 Nov 2016 18:11:29 +0000 (10:11 -0800)
Some things may not be floats and intel CPUs are known for mangling bits
when a float type is used for copying integers.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp_genX_exec.h

index 66d53ec21377866ef4578f00ebc018c7bbf1dccc..121f05de43e33f3f74b0916a64fa2ba7f62bace4 100644 (file)
@@ -197,8 +197,8 @@ blorp_emit_input_varying_data(struct blorp_batch *batch,
 
    *size = num_varyings * vec4_size_in_bytes;
 
-   const float *const inputs_src = (const float *)&params->wm_inputs;
-   float *inputs = blorp_alloc_vertex_buffer(batch, *size, addr);
+   const uint32_t *const inputs_src = (const uint32_t *)&params->wm_inputs;
+   uint32_t *inputs = blorp_alloc_vertex_buffer(batch, *size, addr);
 
    /* Walk over the attribute slots, determine if the attribute is used by
     * the program and when necessary copy the values from the input storage to