This fixes a bunch of arb_fragment_program piglit tests.
Thanks.

Reviewed-by: Samuel Pitoiset <[email protected]>

On 01/05/2017 01:48 PM, Marek Olšák wrote:
From: Marek Olšák <[email protected]>

Broken by:
   st/mesa: get Version from gl_program rather than gl_shader_program
---
 src/mesa/state_tracker/st_atom_texture.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_atom_texture.c 
b/src/mesa/state_tracker/st_atom_texture.c
index 58e753d..76e512f 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -116,25 +116,27 @@ update_textures(struct st_context *st,
    if (samplers_used == 0x0 && old_max == 0)
       return;

    *num_textures = 0;

    /* loop over sampler units (aka tex image units) */
    for (unit = 0; unit < max_units; unit++, samplers_used >>= 1) {
       struct pipe_sampler_view *sampler_view = NULL;

       if (samplers_used & 1) {
+         /* prog->sh.data is NULL if it's ARB_fragment_program */
+         unsigned glsl_version = prog->sh.data ? prog->sh.data->Version : 0;
          const GLuint texUnit = prog->SamplerUnits[unit];
          GLboolean retval;

          retval = update_single_texture(st, &sampler_view, texUnit,
-                                        prog->sh.data->Version);
+                                        glsl_version);
          if (retval == GL_FALSE)
             continue;

          *num_textures = unit + 1;
       }
       else if (samplers_used == 0 && unit >= old_max) {
          /* if we've reset all the old views and we have no more new ones */
          break;
       }


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to