mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
i965/vec4: Change vec4_visitor::gather_channel() method to allow reuse
This patch changes the signature of gather_channel() to accept the gather component directly instead of fetching it internally from ir_texture. This will allow reuse in the upcoming NIR->vec4 pass. Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
72c8d7721f
commit
57182332b8
2 changed files with 6 additions and 5 deletions
|
|
@ -333,7 +333,7 @@ public:
|
|||
void emit_pack_unorm_4x8(const dst_reg &dst, const src_reg &src0);
|
||||
void emit_pack_snorm_4x8(const dst_reg &dst, const src_reg &src0);
|
||||
|
||||
uint32_t gather_channel(ir_texture *ir, uint32_t sampler);
|
||||
uint32_t gather_channel(unsigned gather_component, uint32_t sampler);
|
||||
src_reg emit_mcs_fetch(const glsl_type *coordinate_type, src_reg coordinate,
|
||||
src_reg sampler);
|
||||
void emit_gen6_gather_wa(uint8_t wa, dst_reg dst);
|
||||
|
|
|
|||
|
|
@ -2675,7 +2675,9 @@ vec4_visitor::visit(ir_texture *ir)
|
|||
|
||||
/* Stuff the channel select bits in the top of the texture offset */
|
||||
if (ir->op == ir_tg4)
|
||||
inst->offset |= gather_channel(ir, sampler) << 16;
|
||||
inst->offset |=
|
||||
gather_channel( ir->lod_info.component->as_constant()->value.i[0],
|
||||
sampler) << 16;
|
||||
|
||||
/* The message header is necessary for:
|
||||
* - Gen4 (always)
|
||||
|
|
@ -2847,10 +2849,9 @@ vec4_visitor::emit_gen6_gather_wa(uint8_t wa, dst_reg dst)
|
|||
* Set up the gather channel based on the swizzle, for gather4.
|
||||
*/
|
||||
uint32_t
|
||||
vec4_visitor::gather_channel(ir_texture *ir, uint32_t sampler)
|
||||
vec4_visitor::gather_channel(unsigned gather_component, uint32_t sampler)
|
||||
{
|
||||
ir_constant *chan = ir->lod_info.component->as_constant();
|
||||
int swiz = GET_SWZ(key->tex.swizzles[sampler], chan->value.i[0]);
|
||||
int swiz = GET_SWZ(key->tex.swizzles[sampler], gather_component);
|
||||
switch (swiz) {
|
||||
case SWIZZLE_X: return 0;
|
||||
case SWIZZLE_Y:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue