mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 09:30:11 +01:00
etnaviv: fix incorrect varying interpolation
This corresponds to what the GC3000 blob does. The USED / UNUSED enums are wrong, at least for GC2000/GC3000. Without this the 3rd texture component is not interpolated correctly (flat?) in the following test (and others): dEQP-GLES2.functional.texture.mipmap.cube.generate.rgba8888_nicest Strangely, when the texture is sampled from OpenGL it works correctly, the problem only shows up for sampling by gallium/blitter. This fixes other cube map tests which use util_blitter_blit. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
This commit is contained in:
parent
a9e78a44d1
commit
4e102a6de7
1 changed files with 7 additions and 5 deletions
|
|
@ -2575,16 +2575,18 @@ etna_link_shader(struct etna_shader_link_info *info,
|
|||
else /* texture coord or other bypasses flat shading */
|
||||
varying->pa_attributes = 0x2f1;
|
||||
|
||||
varying->use[0] = interpolate_always ? VARYING_COMPONENT_USE_POINTCOORD_X : VARYING_COMPONENT_USE_USED;
|
||||
varying->use[1] = interpolate_always ? VARYING_COMPONENT_USE_POINTCOORD_Y : VARYING_COMPONENT_USE_USED;
|
||||
varying->use[2] = VARYING_COMPONENT_USE_USED;
|
||||
varying->use[3] = VARYING_COMPONENT_USE_USED;
|
||||
|
||||
varying->use[0] = VARYING_COMPONENT_USE_UNUSED;
|
||||
varying->use[1] = VARYING_COMPONENT_USE_UNUSED;
|
||||
varying->use[2] = VARYING_COMPONENT_USE_UNUSED;
|
||||
varying->use[3] = VARYING_COMPONENT_USE_UNUSED;
|
||||
|
||||
/* point coord is an input to the PS without matching VS output,
|
||||
* so it gets a varying slot without being assigned a VS register.
|
||||
*/
|
||||
if (fsio->semantic.Name == TGSI_SEMANTIC_PCOORD) {
|
||||
varying->use[0] = VARYING_COMPONENT_USE_POINTCOORD_X;
|
||||
varying->use[1] = VARYING_COMPONENT_USE_POINTCOORD_Y;
|
||||
|
||||
info->pcoord_varying_comp_ofs = comp_ofs;
|
||||
} else {
|
||||
if (vsio == NULL) { /* not found -- link error */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue