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 <martin.peres@linux.intel.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
e5851cff45
commit
56ebd3314b
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue