mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 11:30:21 +01:00
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 <kenneth@whitecape.org>
This commit is contained in:
parent
2c4f6ceeb4
commit
25edfbfccf
1 changed files with 3 additions and 3 deletions
|
|
@ -56,7 +56,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"
|
||||
|
|
@ -76,12 +76,12 @@ def generate_sigs(g, tex_inst, sampler_type, variant = 0, unused_fields = 0):
|
|||
elif ((tex_inst == "txf" or tex_inst == "txs") and "Buffer" not in sampler_type and "Rect" not in sampler_type):
|
||||
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)",
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue