From 0f7dffae6936eb18fbc9fe32a1ff45d9c78557bf Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 1 Jun 2012 02:56:50 -0700 Subject: [PATCH] glsl/builtins: Fix textureGrad() for Array samplers. We were incorrectly assuming that the coordinate's dimensionality is equal to the gradient's dimensionality. For array types, the coordinate has one more component. Fixes 12 subcases of oglconform's glsl-bif-tex-grad test. NOTE: This is a candidate for stable release branches. Signed-off-by: Kenneth Graunke (cherry picked from commit 25edfbfccfb8af9eecd949c3fc4f2680c5b963b6) --- src/glsl/builtins/tools/texture_builtins.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/glsl/builtins/tools/texture_builtins.py b/src/glsl/builtins/tools/texture_builtins.py index 07d0a1b8d76..0fe9abc16fd 100755 --- a/src/glsl/builtins/tools/texture_builtins.py +++ b/src/glsl/builtins/tools/texture_builtins.py @@ -54,7 +54,7 @@ def get_txs_dim(sampler_type): def generate_sigs(g, tex_inst, sampler_type, variant = 0, unused_fields = 0): coord_dim = get_coord_dim(sampler_type) extra_dim = get_extra_dim(sampler_type, variant & Proj, unused_fields) - offset_dim = get_sampler_dim(sampler_type) + sampler_dim = get_sampler_dim(sampler_type) if variant & Single: return_type = "float" @@ -74,12 +74,12 @@ def generate_sigs(g, tex_inst, sampler_type, variant = 0, unused_fields = 0): elif tex_inst == "txf" or tex_inst == "txs": print "\n (declare (in) int lod)", elif tex_inst == "txd": - grad_type = vec_type("", coord_dim) + grad_type = vec_type("", sampler_dim) print "\n (declare (in) " + grad_type + " dPdx)", print "\n (declare (in) " + grad_type + " dPdy)", if variant & Offset: - print "\n (declare (const_in) " + vec_type("i", offset_dim) + " offset)", + print "\n (declare (const_in) " + vec_type("i", sampler_dim) + " offset)", if tex_inst == "txb": print "\n (declare (in) float bias)",