From: Martin Peres Date: Thu, 20 Aug 2015 12:15:56 +0000 (+0300) Subject: i965: Fix "handle nir_intrinsic_image_size" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=56ebd3314bfc5895fab47586fc8cda024aac4fd8;p=mesa.git i965: Fix "handle nir_intrinsic_image_size" I pushed a half-baked version of "i965: handle nir_intrinsic_image_size" by accident. Not having the Reviewed-by: tags on the last two commits should have been a red flag but I somehow missed it after the QA check. This patch should fix image-size for non-int images. I will add support to the piglit test for all the other image types. Sorry for the noise. Signed-off-by: Martin Peres Reviewed-by: Francisco Jerez --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 12471fb6a90..c726c72ebbe 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -1410,7 +1410,6 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr /* Get the referenced image variable and type. */ const nir_variable *var = instr->variables[0]->var; const glsl_type *type = var->type->without_array(); - const brw_reg_type base_type = get_image_base_type(type); /* Get the size of the image. */ const fs_reg image = get_nir_image_deref(instr->variables[0]); @@ -1437,14 +1436,14 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c), fs_reg(1)); } else if (c == 1 && is_1d_array_image) { - bld.MOV(offset(retype(dest, base_type), bld, c), + bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c), offset(size, bld, 2)); } else if (c == 2 && is_cube_array_image) { bld.emit(SHADER_OPCODE_INT_QUOTIENT, - offset(retype(dest, base_type), bld, c), + offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c), offset(size, bld, c), fs_reg(6)); } else { - bld.MOV(offset(retype(dest, base_type), bld, c), + bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c), offset(size, bld, c)); } }