[Mesa-dev] [PATCH] i965/fs: Make the texturing helpers take NIR opcodes instead of old IR ones
Jason Ekstrand
jason at jlekstrand.net
Mon Jul 13 07:22:25 PDT 2015
On Jul 13, 2015 6:04 AM, "Francisco Jerez" <currojerez at riseup.net> wrote:
>
> Jason Ekstrand <jason at jlekstrand.net> writes:
>
> > Now that the old GLSL IR visitor code is gone, having the remap is
silly.
> > ---
> > src/mesa/drivers/dri/i965/brw_fs.h | 12 +--
> > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 18 +---
> > src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 135
++++++++++++++-------------
> > 3 files changed, 75 insertions(+), 90 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_fs.h
b/src/mesa/drivers/dri/i965/brw_fs.h
> > index 5243079..1690f4a 100644
> > --- a/src/mesa/drivers/dri/i965/brw_fs.h
> > +++ b/src/mesa/drivers/dri/i965/brw_fs.h
> > @@ -109,7 +109,7 @@ public:
> > void compute_clip_distance(gl_clip_plane *clip_planes);
> >
> > uint32_t gather_channel(int orig_chan, uint32_t sampler);
> > - void swizzle_result(ir_texture_opcode op, int dest_components,
> > + void swizzle_result(nir_texop op, int dest_components,
> > fs_reg orig_val, uint32_t sampler);
> >
> > int type_size(const struct glsl_type *type);
> > @@ -207,28 +207,28 @@ public:
> > void compute_sample_position(fs_reg dst, fs_reg int_sample_pos);
> > fs_reg rescale_texcoord(fs_reg coordinate, int coord_components,
> > bool is_rect, uint32_t sampler, int
texunit);
> > - fs_inst *emit_texture_gen4(ir_texture_opcode op, fs_reg dst,
> > + fs_inst *emit_texture_gen4(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_comp,
> > fs_reg lod, fs_reg lod2, int
grad_components,
> > uint32_t sampler);
> > - fs_inst *emit_texture_gen4_simd16(ir_texture_opcode op, fs_reg dst,
> > + fs_inst *emit_texture_gen4_simd16(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int
vector_elements,
> > fs_reg shadow_c, fs_reg lod,
> > uint32_t sampler);
> > - fs_inst *emit_texture_gen5(ir_texture_opcode op, fs_reg dst,
> > + fs_inst *emit_texture_gen5(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_comp,
> > fs_reg lod, fs_reg lod2, int
grad_components,
> > fs_reg sample_index, uint32_t sampler,
> > bool has_offset);
> > - fs_inst *emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
> > + fs_inst *emit_texture_gen7(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_comp,
> > fs_reg lod, fs_reg lod2, int
grad_components,
> > fs_reg sample_index, fs_reg mcs, fs_reg
sampler,
> > fs_reg offset_value);
> > - void emit_texture(ir_texture_opcode op,
> > + void emit_texture(nir_texop op,
> > const glsl_type *dest_type,
> > fs_reg coordinate, int components,
> > fs_reg shadow_c,
>
> Hold on, I'm about to send a series that gets rid of the
> ir_texture_opcode argument of these gen-specific functions and replaces
> it with a backend_instruction opcode. If you wait a little this change
> will involve much less churn.
Fine with me.
> > diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> > index caf1300..d8a6f3c 100644
> > --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> > @@ -1739,23 +1739,7 @@ fs_visitor::nir_emit_texture(const fs_builder
&bld, nir_tex_instr *instr)
> > glsl_type::get_instance(dest_base_type,
nir_tex_instr_dest_size(instr),
> > 1);
> >
> > - ir_texture_opcode op;
> > - switch (instr->op) {
> > - case nir_texop_lod: op = ir_lod; break;
> > - case nir_texop_query_levels: op = ir_query_levels; break;
> > - case nir_texop_tex: op = ir_tex; break;
> > - case nir_texop_tg4: op = ir_tg4; break;
> > - case nir_texop_txb: op = ir_txb; break;
> > - case nir_texop_txd: op = ir_txd; break;
> > - case nir_texop_txf: op = ir_txf; break;
> > - case nir_texop_txf_ms: op = ir_txf_ms; break;
> > - case nir_texop_txl: op = ir_txl; break;
> > - case nir_texop_txs: op = ir_txs; break;
> > - default:
> > - unreachable("unknown texture opcode");
> > - }
> > -
> > - emit_texture(op, dest_type, coordinate, instr->coord_components,
> > + emit_texture(instr->op, dest_type, coordinate,
instr->coord_components,
> > shadow_comparitor, lod, lod2, lod_components,
sample_index,
> > tex_offset, mcs, gather_component,
> > is_cube_array, is_rect, sampler, sampler_reg, texunit);
> > diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> > index 94d6a58..c726dcc 100644
> > --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> > @@ -78,7 +78,7 @@ fs_visitor::emit_vs_system_value(int location)
> > }
> >
> > fs_inst *
> > -fs_visitor::emit_texture_gen4(ir_texture_opcode op, fs_reg dst,
> > +fs_visitor::emit_texture_gen4(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_c,
> > fs_reg lod, fs_reg dPdy, int
grad_components,
> > @@ -106,13 +106,13 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode
op, fs_reg dst,
> > }
> > mlen += 3;
> >
> > - if (op == ir_tex) {
> > + if (op == nir_texop_tex) {
> > /* There's no plain shadow compare message, so we use shadow
> > * compare with a bias of 0.0.
> > */
> > bld.MOV(fs_reg(MRF, base_mrf + mlen), fs_reg(0.0f));
> > mlen++;
> > - } else if (op == ir_txb || op == ir_txl) {
> > + } else if (op == nir_texop_txb || op == nir_texop_txl) {
> > bld.MOV(fs_reg(MRF, base_mrf + mlen), lod);
> > mlen++;
> > } else {
> > @@ -121,7 +121,7 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode op,
fs_reg dst,
> >
> > bld.MOV(fs_reg(MRF, base_mrf + mlen), shadow_c);
> > mlen++;
> > - } else if (op == ir_tex) {
> > + } else if (op == nir_texop_tex) {
> > for (int i = 0; i < coord_components; i++) {
> > bld.MOV(fs_reg(MRF, base_mrf + mlen + i), coordinate);
> > coordinate = offset(coordinate, bld, 1);
> > @@ -132,7 +132,7 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode op,
fs_reg dst,
> > }
> > /* gen4's SIMD8 sampler always has the slots for u,v,r present.
*/
> > mlen += 3;
> > - } else if (op == ir_txd) {
> > + } else if (op == nir_texop_txd) {
> > fs_reg &dPdx = lod;
> >
> > for (int i = 0; i < coord_components; i++) {
> > @@ -167,7 +167,7 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode op,
fs_reg dst,
> > dPdy = offset(dPdy, bld, 1);
> > }
> > mlen += MAX2(grad_components, 2);
> > - } else if (op == ir_txs) {
> > + } else if (op == nir_texop_txs) {
> > /* There's no SIMD8 resinfo message on Gen4. Use SIMD16
instead. */
> > simd16 = true;
> > bld.MOV(fs_reg(MRF, base_mrf + mlen, BRW_REGISTER_TYPE_UD), lod);
> > @@ -177,7 +177,7 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode op,
fs_reg dst,
> > * instructions. We'll need to do SIMD16 here.
> > */
> > simd16 = true;
> > - assert(op == ir_txb || op == ir_txl || op == ir_txf);
> > + assert(op == nir_texop_txb || op == nir_texop_txl || op ==
nir_texop_txf);
> >
> > for (int i = 0; i < coord_components; i++) {
> > bld.MOV(fs_reg(MRF, base_mrf + mlen + i * 2, coordinate.type),
> > @@ -213,12 +213,12 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode
op, fs_reg dst,
> >
> > enum opcode opcode;
> > switch (op) {
> > - case ir_tex: opcode = SHADER_OPCODE_TEX; break;
> > - case ir_txb: opcode = FS_OPCODE_TXB; break;
> > - case ir_txl: opcode = SHADER_OPCODE_TXL; break;
> > - case ir_txd: opcode = SHADER_OPCODE_TXD; break;
> > - case ir_txs: opcode = SHADER_OPCODE_TXS; break;
> > - case ir_txf: opcode = SHADER_OPCODE_TXF; break;
> > + case nir_texop_tex: opcode = SHADER_OPCODE_TEX; break;
> > + case nir_texop_txb: opcode = FS_OPCODE_TXB; break;
> > + case nir_texop_txl: opcode = SHADER_OPCODE_TXL; break;
> > + case nir_texop_txd: opcode = SHADER_OPCODE_TXD; break;
> > + case nir_texop_txs: opcode = SHADER_OPCODE_TXS; break;
> > + case nir_texop_txf: opcode = SHADER_OPCODE_TXF; break;
> > default:
> > unreachable("not reached");
> > }
> > @@ -241,18 +241,19 @@ fs_visitor::emit_texture_gen4(ir_texture_opcode
op, fs_reg dst,
> > }
> >
> > fs_inst *
> > -fs_visitor::emit_texture_gen4_simd16(ir_texture_opcode op, fs_reg dst,
> > +fs_visitor::emit_texture_gen4_simd16(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int
vector_elements,
> > fs_reg shadow_c, fs_reg lod,
> > uint32_t sampler)
> > {
> > fs_reg message(MRF, 2, BRW_REGISTER_TYPE_F);
> > - bool has_lod = op == ir_txl || op == ir_txb || op == ir_txf || op
== ir_txs;
> > + bool has_lod = op == nir_texop_txl || op == nir_texop_txb ||
> > + op == nir_texop_txf || op == nir_texop_txs;
> >
> > if (has_lod && shadow_c.file != BAD_FILE)
> > no16("TXB and TXL with shadow comparison unsupported in
SIMD16.");
> >
> > - if (op == ir_txd)
> > + if (op == nir_texop_txd)
> > no16("textureGrad unsupported in SIMD16.");
> >
> > /* Copy the coordinates. */
> > @@ -272,7 +273,7 @@
fs_visitor::emit_texture_gen4_simd16(ir_texture_opcode op, fs_reg dst,
> > }
> >
> > if (has_lod) {
> > - fs_reg msg_lod = retype(msg_end, op == ir_txf ?
> > + fs_reg msg_lod = retype(msg_end, op == nir_texop_txf ?
> > BRW_REGISTER_TYPE_UD :
BRW_REGISTER_TYPE_F);
> > bld.MOV(msg_lod, lod);
> > msg_end = offset(msg_lod, bld, 1);
> > @@ -286,12 +287,12 @@
fs_visitor::emit_texture_gen4_simd16(ir_texture_opcode op, fs_reg dst,
> >
> > enum opcode opcode;
> > switch (op) {
> > - case ir_tex: opcode = SHADER_OPCODE_TEX; break;
> > - case ir_txb: opcode = FS_OPCODE_TXB; break;
> > - case ir_txd: opcode = SHADER_OPCODE_TXD; break;
> > - case ir_txl: opcode = SHADER_OPCODE_TXL; break;
> > - case ir_txs: opcode = SHADER_OPCODE_TXS; break;
> > - case ir_txf: opcode = SHADER_OPCODE_TXF; break;
> > + case nir_texop_tex: opcode = SHADER_OPCODE_TEX; break;
> > + case nir_texop_txb: opcode = FS_OPCODE_TXB; break;
> > + case nir_texop_txd: opcode = SHADER_OPCODE_TXD; break;
> > + case nir_texop_txl: opcode = SHADER_OPCODE_TXL; break;
> > + case nir_texop_txs: opcode = SHADER_OPCODE_TXS; break;
> > + case nir_texop_txf: opcode = SHADER_OPCODE_TXF; break;
> > default: unreachable("not reached");
> > }
> >
> > @@ -313,7 +314,7 @@
fs_visitor::emit_texture_gen4_simd16(ir_texture_opcode op, fs_reg dst,
> > * surprising in the disassembly.
> > */
> > fs_inst *
> > -fs_visitor::emit_texture_gen5(ir_texture_opcode op, fs_reg dst,
> > +fs_visitor::emit_texture_gen5(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int vector_elements,
> > fs_reg shadow_c,
> > fs_reg lod, fs_reg lod2, int
grad_components,
> > @@ -350,22 +351,22 @@ fs_visitor::emit_texture_gen5(ir_texture_opcode
op, fs_reg dst,
> >
> > enum opcode opcode;
> > switch (op) {
> > - case ir_tex:
> > + case nir_texop_tex:
> > opcode = SHADER_OPCODE_TEX;
> > break;
> > - case ir_txb:
> > + case nir_texop_txb:
> > bld.MOV(msg_lod, lod);
> > msg_end = offset(msg_lod, bld, 1);
> >
> > opcode = FS_OPCODE_TXB;
> > break;
> > - case ir_txl:
> > + case nir_texop_txl:
> > bld.MOV(msg_lod, lod);
> > msg_end = offset(msg_lod, bld, 1);
> >
> > opcode = SHADER_OPCODE_TXL;
> > break;
> > - case ir_txd: {
> > + case nir_texop_txd: {
> > /**
> > * P = u, v, r
> > * dPdx = dudx, dvdx, drdx
> > @@ -389,28 +390,28 @@ fs_visitor::emit_texture_gen5(ir_texture_opcode
op, fs_reg dst,
> > opcode = SHADER_OPCODE_TXD;
> > break;
> > }
> > - case ir_txs:
> > + case nir_texop_txs:
> > msg_lod = retype(msg_end, BRW_REGISTER_TYPE_UD);
> > bld.MOV(msg_lod, lod);
> > msg_end = offset(msg_lod, bld, 1);
> >
> > opcode = SHADER_OPCODE_TXS;
> > break;
> > - case ir_query_levels:
> > + case nir_texop_query_levels:
> > msg_lod = msg_end;
> > bld.MOV(retype(msg_lod, BRW_REGISTER_TYPE_UD), fs_reg(0u));
> > msg_end = offset(msg_lod, bld, 1);
> >
> > opcode = SHADER_OPCODE_TXS;
> > break;
> > - case ir_txf:
> > + case nir_texop_txf:
> > msg_lod = offset(msg_coords, bld, 3);
> > bld.MOV(retype(msg_lod, BRW_REGISTER_TYPE_UD), lod);
> > msg_end = offset(msg_lod, bld, 1);
> >
> > opcode = SHADER_OPCODE_TXF;
> > break;
> > - case ir_txf_ms:
> > + case nir_texop_txf_ms:
> > msg_lod = offset(msg_coords, bld, 3);
> > /* lod */
> > bld.MOV(retype(msg_lod, BRW_REGISTER_TYPE_UD), fs_reg(0u));
> > @@ -420,10 +421,10 @@ fs_visitor::emit_texture_gen5(ir_texture_opcode
op, fs_reg dst,
> >
> > opcode = SHADER_OPCODE_TXF_CMS;
> > break;
> > - case ir_lod:
> > + case nir_texop_lod:
> > opcode = SHADER_OPCODE_LOD;
> > break;
> > - case ir_tg4:
> > + case nir_texop_tg4:
> > opcode = SHADER_OPCODE_TG4;
> > break;
> > default:
> > @@ -454,7 +455,7 @@ is_high_sampler(const struct brw_device_info
*devinfo, fs_reg sampler)
> > }
> >
> > fs_inst *
> > -fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
> > +fs_visitor::emit_texture_gen7(nir_texop op, fs_reg dst,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_c,
> > fs_reg lod, fs_reg lod2, int
grad_components,
> > @@ -470,7 +471,7 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op,
fs_reg dst,
> > }
> > int length = 0;
> >
> > - if (op == ir_tg4 || offset_value.file != BAD_FILE ||
> > + if (op == nir_texop_tg4 || offset_value.file != BAD_FILE ||
> > is_high_sampler(devinfo, sampler)) {
> > /* For general texture offsets (no txf workaround), we need a
header to
> > * put them in. Note that for SIMD16 we're making space for two
actual
> > @@ -497,28 +498,28 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode
op, fs_reg dst,
> > bool coordinate_done = false;
> >
> > /* The sampler can only meaningfully compute LOD for fragment shader
> > - * messages. For all other stages, we change the opcode to ir_txl
and
> > - * hardcode the LOD to 0.
> > + * messages. For all other stages, we change the opcode to
nir_texop_txl
> > + * and hardcode the LOD to 0.
> > */
> > - if (stage != MESA_SHADER_FRAGMENT && op == ir_tex) {
> > - op = ir_txl;
> > + if (stage != MESA_SHADER_FRAGMENT && op == nir_texop_tex) {
> > + op = nir_texop_txl;
> > lod = fs_reg(0.0f);
> > }
> >
> > /* Set up the LOD info */
> > switch (op) {
> > - case ir_tex:
> > - case ir_lod:
> > + case nir_texop_tex:
> > + case nir_texop_lod:
> > break;
> > - case ir_txb:
> > + case nir_texop_txb:
> > bld.MOV(sources[length], lod);
> > length++;
> > break;
> > - case ir_txl:
> > + case nir_texop_txl:
> > bld.MOV(sources[length], lod);
> > length++;
> > break;
> > - case ir_txd: {
> > + case nir_texop_txd: {
> > no16("Gen7 does not support sample_d/sample_d_c in SIMD16
mode.");
> >
> > /* Load dPdx and the coordinate together:
> > @@ -546,15 +547,15 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode
op, fs_reg dst,
> > coordinate_done = true;
> > break;
> > }
> > - case ir_txs:
> > + case nir_texop_txs:
> > bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD), lod);
> > length++;
> > break;
> > - case ir_query_levels:
> > + case nir_texop_query_levels:
> > bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD),
fs_reg(0u));
> > length++;
> > break;
> > - case ir_txf:
> > + case nir_texop_txf:
> > /* Unfortunately, the parameters for LD are intermixed: u, lod,
v, r.
> > * On Gen9 they are u, v, lod, r
> > */
> > @@ -582,7 +583,7 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op,
fs_reg dst,
> >
> > coordinate_done = true;
> > break;
> > - case ir_txf_ms:
> > + case nir_texop_txf_ms:
> > bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD),
sample_index);
> > length++;
> >
> > @@ -601,7 +602,7 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op,
fs_reg dst,
> >
> > coordinate_done = true;
> > break;
> > - case ir_tg4:
> > + case nir_texop_tg4:
> > if (has_nonconstant_offset) {
> > if (shadow_c.file != BAD_FILE)
> > no16("Gen7 does not support gather4_po_c in SIMD16 mode.");
> > @@ -652,16 +653,16 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode
op, fs_reg dst,
> > /* Generate the SEND */
> > enum opcode opcode;
> > switch (op) {
> > - case ir_tex: opcode = SHADER_OPCODE_TEX; break;
> > - case ir_txb: opcode = FS_OPCODE_TXB; break;
> > - case ir_txl: opcode = SHADER_OPCODE_TXL; break;
> > - case ir_txd: opcode = SHADER_OPCODE_TXD; break;
> > - case ir_txf: opcode = SHADER_OPCODE_TXF; break;
> > - case ir_txf_ms: opcode = SHADER_OPCODE_TXF_CMS; break;
> > - case ir_txs: opcode = SHADER_OPCODE_TXS; break;
> > - case ir_query_levels: opcode = SHADER_OPCODE_TXS; break;
> > - case ir_lod: opcode = SHADER_OPCODE_LOD; break;
> > - case ir_tg4:
> > + case nir_texop_tex: opcode = SHADER_OPCODE_TEX; break;
> > + case nir_texop_txb: opcode = FS_OPCODE_TXB; break;
> > + case nir_texop_txl: opcode = SHADER_OPCODE_TXL; break;
> > + case nir_texop_txd: opcode = SHADER_OPCODE_TXD; break;
> > + case nir_texop_txf: opcode = SHADER_OPCODE_TXF; break;
> > + case nir_texop_txf_ms: opcode = SHADER_OPCODE_TXF_CMS; break;
> > + case nir_texop_txs: opcode = SHADER_OPCODE_TXS; break;
> > + case nir_texop_query_levels: opcode = SHADER_OPCODE_TXS; break;
> > + case nir_texop_lod: opcode = SHADER_OPCODE_LOD; break;
> > + case nir_texop_tg4:
> > if (has_nonconstant_offset)
> > opcode = SHADER_OPCODE_TG4_OFFSET;
> > else
> > @@ -826,7 +827,7 @@ fs_visitor::emit_mcs_fetch(fs_reg coordinate, int
components, fs_reg sampler)
> > }
> >
> > void
> > -fs_visitor::emit_texture(ir_texture_opcode op,
> > +fs_visitor::emit_texture(nir_texop op,
> > const glsl_type *dest_type,
> > fs_reg coordinate, int coord_components,
> > fs_reg shadow_c,
> > @@ -842,7 +843,7 @@ fs_visitor::emit_texture(ir_texture_opcode op,
> > {
> > fs_inst *inst = NULL;
> >
> > - if (op == ir_tg4) {
> > + if (op == nir_texop_tg4) {
> > /* When tg4 is used with the degenerate ZERO/ONE swizzles, don't
bother
> > * emitting anything other than setting up the constant result.
> > */
> > @@ -898,7 +899,7 @@ fs_visitor::emit_texture(ir_texture_opcode op,
> > if (offset_value.file == IMM)
> > inst->offset = offset_value.fixed_hw_reg.dw1.ud;
> >
> > - if (op == ir_tg4) {
> > + if (op == nir_texop_tg4) {
> > inst->offset |=
> > gather_channel(gather_component, sampler) << 16; /*
M0.2:16-17 */
> >
> > @@ -907,7 +908,7 @@ fs_visitor::emit_texture(ir_texture_opcode op,
> > }
> >
> > /* fixup #layers for cube map arrays */
> > - if (op == ir_txs && is_cube_array) {
> > + if (op == nir_texop_txs && is_cube_array) {
> > fs_reg depth = offset(dst, bld, 2);
> > fs_reg fixed_depth = vgrf(glsl_type::int_type);
> > bld.emit(SHADER_OPCODE_INT_QUOTIENT, fixed_depth, depth,
fs_reg(6));
> > @@ -985,10 +986,10 @@ fs_visitor::gather_channel(int orig_chan,
uint32_t sampler)
> > * EXT_texture_swizzle as well as DEPTH_TEXTURE_MODE for shadow
comparisons.
> > */
> > void
> > -fs_visitor::swizzle_result(ir_texture_opcode op, int dest_components,
> > +fs_visitor::swizzle_result(nir_texop op, int dest_components,
> > fs_reg orig_val, uint32_t sampler)
> > {
> > - if (op == ir_query_levels) {
> > + if (op == nir_texop_query_levels) {
> > /* # levels is in .w */
> > this->result = offset(orig_val, bld, 3);
> > return;
> > @@ -999,7 +1000,7 @@ fs_visitor::swizzle_result(ir_texture_opcode op,
int dest_components,
> > /* txs,lod don't actually sample the texture, so swizzling the
result
> > * makes no sense.
> > */
> > - if (op == ir_txs || op == ir_lod || op == ir_tg4)
> > + if (op == nir_texop_txs || op == nir_texop_lod || op ==
nir_texop_tg4)
> > return;
> >
> > if (dest_components == 1) {
> > --
> > 2.4.3
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150713/5d73481c/attachment-0001.html>
More information about the mesa-dev
mailing list