For the series: Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Marek On Sun, Oct 14, 2018 at 8:48 PM Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > The drawpixel lowering references undeclared samplers, but also > missing a texture handle. > --- > src/compiler/nir/nir_lower_drawpixels.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/src/compiler/nir/nir_lower_drawpixels.c > b/src/compiler/nir/nir_lower_drawpixels.c > index 462b9c308b2..3e86cc08470 100644 > --- a/src/compiler/nir/nir_lower_drawpixels.c > +++ b/src/compiler/nir/nir_lower_drawpixels.c > @@ -66,6 +66,24 @@ get_texcoord(lower_drawpixels_state *state) > return nir_load_var(&state->b, state->texcoord); > } > > +static void > +add_samplers(lower_drawpixels_state *state) > +{ > + nir_variable *sampler = nir_variable_create(state->shader, > + nir_var_uniform, > + > glsl_sampler_type(GLSL_SAMPLER_DIM_2D, false, false, GLSL_TYPE_FLOAT), > + "s_drawpix"); > + sampler->data.location = state->options->drawpix_sampler; > + > + if (state->options->pixel_maps) { > + nir_variable *sampler = nir_variable_create(state->shader, > + nir_var_uniform, > + > glsl_sampler_type(GLSL_SAMPLER_DIM_2D, false, false, GLSL_TYPE_FLOAT), > + "s_pixelmap"); > + sampler->data.location = state->options->pixelmap_sampler; > + } > +} > + > static nir_variable * > create_uniform(nir_shader *shader, const char *name, > const gl_state_index16 state_tokens[STATE_LENGTH]) > @@ -123,6 +141,7 @@ lower_color(lower_drawpixels_state *state, > nir_intrinsic_instr *intr) > > b->cursor = nir_before_instr(&intr->instr); > > + add_samplers(state); > texcoord = get_texcoord(state); > > /* replace load_var(gl_Color) w/ texture sample: > @@ -175,6 +194,7 @@ lower_color(lower_drawpixels_state *state, > nir_intrinsic_instr *intr) > tex->sampler_dim = GLSL_SAMPLER_DIM_2D; > tex->coord_components = 2; > tex->sampler_index = state->options->pixelmap_sampler; > + tex->texture_index = state->options->pixelmap_sampler; > tex->dest_type = nir_type_float; > tex->src[0].src_type = nir_tex_src_coord; > tex->src[0].src = nir_src_for_ssa(nir_channels(b, def, 0xc)); > -- > 2.17.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev