From: Chris Forbes Date: Sat, 9 Aug 2014 23:54:47 +0000 (+1200) Subject: i965/fs: Use brw_adjust_sampler_state_pointer in fs generator too X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2b1204aa96cb2d1aa66cecde810b9224d457a580;p=mesa.git i965/fs: Use brw_adjust_sampler_state_pointer in fs generator too Signed-off-by: Chris Forbes Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index d905567023e..bc1e7bf9a44 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -573,22 +573,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src brw_imm_ud(inst->texture_offset)); } - if (sampler >= 16) { - /* The "Sampler Index" field can only store values between 0 and 15. - * However, we can add an offset to the "Sampler State Pointer" - * field, effectively selecting a different set of 16 samplers. - * - * The "Sampler State Pointer" needs to be aligned to a 32-byte - * offset, and each sampler state is only 16-bytes, so we can't - * exclusively use the offset - we have to use both. - */ - assert(brw->gen >= 8 || brw->is_haswell); - const int sampler_state_size = 16; /* 16 bytes */ - brw_ADD(p, - get_element_ud(header_reg, 3), - get_element_ud(brw_vec8_grf(0, 0), 3), - brw_imm_ud(16 * (sampler / 16) * sampler_state_size)); - } + brw_adjust_sampler_state_pointer(p, header_reg, sampler_index, dst); brw_pop_insn_state(p); } }