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