[Nouveau] [Bug 91232] Torchlight 1&2 (in Wine): glitchy models when hardware skinning enabled
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sun Jul 5 10:18:00 PDT 2015
https://bugs.freedesktop.org/show_bug.cgi?id=91232
--- Comment #3 from Ilia Mirkin <imirkin at alum.mit.edu> ---
Created attachment 116959
--> https://bugs.freedesktop.org/attachment.cgi?id=116959&action=edit
shader_test that demonstrates the (?) issue
Looks like they use gl_SecondaryColor in the fragment shader, and the GLSL
linker, seeing no writes to gl_SecondaryFrontColor in the vertex shader,
creates this IR:
(declare (location=4 shader_in ) vec4 gl_in_TexCoord0)
(declare (location=5 shader_in ) vec4 gl_in_TexCoord1)
(declare (location=1 shader_in ) vec4 gl_Color)
(declare (temporary ) vec4 gl_in_FrontColor1_dummy)
(declare (location=3 shader_in ) float gl_FogFragCoord)
(declare (location=4 shader_out ) vec4 gl_out_TexCoord0)
(declare (temporary ) vec4 gl_out_TexCoord0)
(declare () vec4 ret)
(declare (location=0 uniform ) sampler2D ps_sampler0)
(declare (location=1 uniform ) samplerCube ps_sampler1)
(declare (location=2 uniform ) vec4 specular_enable)
(declare (location=3 uniform ) #anon_struct_0001 at 0x24cc5d0 ffp_fog)
(function main
(signature void
(parameters
)
(
(declare (temporary ) vec4 textureCube_retval)
(assign (xyzw) (var_ref textureCube_retval) (tex vec4 (var_ref
ps_sampler1) (swiz xyz (var_ref gl_in_TexCoord1) ) 0 1 () ))
(assign (xyzw) (var_ref ret) (expression vec4 * (tex vec4 (var_ref
ps_sampler0) (swiz xy (var_ref gl_in_TexCoord0) ) 0 1 () )(var_ref gl_Color) )
)
(assign (xyz) (var_ref ret) (expression vec3 sat (expression vec3 +
(swiz xyz (var_ref textureCube_retval) )(swiz xyz (var_ref ret) )) ) )
(assign (w) (var_ref ret) (expression float * (swiz w (var_ref
textureCube_retval) )(swiz w (var_ref ret) )) )
(assign (xyzw) (var_ref gl_out_TexCoord0) (expression vec4 +
(expression vec4 * (var_ref gl_in_FrontColor1_dummy) (var_ref specular_enable)
) (var_ref ret) ) )
(assign (xyz) (var_ref gl_out_TexCoord0) (expression vec3 lrp (swiz xyz
(record_ref (var_ref ffp_fog) color) )(swiz xyz (var_ref gl_out_TexCoord0)
)(expression float sat (expression float * (expression float + (record_ref
(var_ref ffp_fog) end) (expression float neg (var_ref gl_FogFragCoord) ) )
(record_ref (var_ref ffp_fog) scale) ) ) ) )
(assign (xyzw) (var_ref gl_out_TexCoord0 at 64) (var_ref gl_out_TexCoord0)
)
))
)
This in turn becomes an uninitialized read from TEMP[3] in the TGSI, and
nouveau doesn't 0-initialize such vars. specular_enable happens to be (1, 1, 1,
0) here.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150705/5451303f/attachment.html>
More information about the Nouveau
mailing list