i965/vec4: pass the correct src_sz to emit_send at emit_untyped_atomic
authorAlejandro Piñeiro <apinheiro@igalia.com>
Fri, 4 Mar 2016 18:20:27 +0000 (19:20 +0100)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Tue, 8 Mar 2016 07:22:26 +0000 (08:22 +0100)
If the src is invalid, so src size is zero, the src_sz passed to emit
send should be zero too, instead of a default 1 if we are in a simd4x2
case. This can happens if using emit_untyped_atomic for an atomic
dec/inc.

v2: use the proper src_sz when calling emit_send, instead of just
    avoid loading src at emit_send if BAD_FILE (Francisco Jerez)

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp

index 28002c56cdc30a16091a3bdeca568bd31d0304ce..1db349ab8ce035c9558ee87773f4bfa80ec64c82 100644 (file)
@@ -221,7 +221,7 @@ namespace brw {
                           emit_insert(bld, addr, dims, has_simd4x2),
                           has_simd4x2 ? 1 : dims,
                           emit_insert(bld, src_reg(srcs), size, has_simd4x2),
-                          has_simd4x2 ? 1 : size,
+                          has_simd4x2 && size ? 1 : size,
                           surface, op, rsize, pred);
       }