summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2018-05-08 13:22:57 -0700
committerEric Anholt <eric@anholt.net>2018-05-17 15:09:12 +0100
commit9bbc3f8cf1f116aa17ebcd399c0d3a8fb07b5266 (patch)
tree9560cfcffc6e0abf031af757b55068a63a9b1af8
parentedfb57c0a0adacad4ccb42a49c19c14314a09565 (diff)
v3d: Enable NaN propagation in the VS and CS as well.
Fixes piglit vs-isnan-*.shader_test at the expense of gl-1.0-spot-light.
-rw-r--r--src/broadcom/cle/v3d_packet_v33.xml4
-rw-r--r--src/broadcom/cle/v3d_packet_v41.xml4
-rw-r--r--src/broadcom/cle/v3d_packet_v42.xml4
-rw-r--r--src/gallium/drivers/v3d/v3dx_draw.c4
4 files changed, 12 insertions, 4 deletions
diff --git a/src/broadcom/cle/v3d_packet_v33.xml b/src/broadcom/cle/v3d_packet_v33.xml
index aac9fbfd28..22d43cc802 100644
--- a/src/broadcom/cle/v3d_packet_v33.xml
+++ b/src/broadcom/cle/v3d_packet_v33.xml
@@ -702,15 +702,17 @@
<field name="Fragment Shader Code Address" size="29" start="99" type="address"/>
<field name="Fragment Shader 2-way threadable" size="1" start="96" type="bool"/>
<field name="Fragment Shader 4-way threadable" size="1" start="97" type="bool"/>
- <field name="Propagate NaNs" size="1" start="98" type="bool"/>
+ <field name="Fragment Shader Propagate NaNs" size="1" start="98" type="bool"/>
<field name="Fragment Shader Uniforms Address" size="32" start="16b" type="address"/>
<field name="Vertex Shader Code Address" size="32" start="20b" type="address"/>
<field name="Vertex Shader 2-way threadable" size="1" start="160" type="bool"/>
<field name="Vertex Shader 4-way threadable" size="1" start="161" type="bool"/>
+ <field name="Vertex Shader Propagate NaNs" size="1" start="162" type="bool"/>
<field name="Vertex Shader Uniforms Address" size="32" start="24b" type="address"/>
<field name="Coordinate Shader Code Address" size="32" start="28b" type="address"/>
<field name="Coordinate Shader 2-way threadable" size="1" start="224" type="bool"/>
<field name="Coordinate Shader 4-way threadable" size="1" start="225" type="bool"/>
+ <field name="Coordinate Shader Propagate NaNs" size="1" start="226" type="bool"/>
<field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="address"/>
</struct>
diff --git a/src/broadcom/cle/v3d_packet_v41.xml b/src/broadcom/cle/v3d_packet_v41.xml
index 5f6d643195..1fb5d5d284 100644
--- a/src/broadcom/cle/v3d_packet_v41.xml
+++ b/src/broadcom/cle/v3d_packet_v41.xml
@@ -781,17 +781,19 @@
<field name="Fragment Shader Code Address" size="32" start="12b" type="address"/>
<field name="Fragment Shader 4-way threadable" size="1" start="96" type="bool"/>
<field name="Fragment Shader start in final thread section" size="1" start="97" type="bool"/>
- <field name="Propagate NaNs" size="1" start="98" type="bool"/>
+ <field name="Fragment Shader Propagate NaNs" size="1" start="98" type="bool"/>
<field name="Fragment Shader Uniforms Address" size="32" start="16b" type="address"/>
<field name="Vertex Shader Code Address" size="32" start="20b" type="address"/>
<field name="Vertex Shader 4-way threadable" size="1" start="160" type="bool"/>
<field name="Vertex Shader start in final thread section" size="1" start="161" type="bool"/>
+ <field name="Vertex Shader Propagate NaNs" size="1" start="162" type="bool"/>
<field name="Vertex Shader Uniforms Address" size="32" start="24b" type="address"/>
<field name="Coordinate Shader Code Address" size="32" start="28b" type="address"/>
<field name="Coordinate Shader 4-way threadable" size="1" start="224" type="bool"/>
<field name="Coordinate Shader start in final thread section" size="1" start="225" type="bool"/>
+ <field name="Coordinate Shader Propagate NaNs" size="1" start="226" type="bool"/>
<field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="address"/>
</struct>
diff --git a/src/broadcom/cle/v3d_packet_v42.xml b/src/broadcom/cle/v3d_packet_v42.xml
index f180e5eec5..a562d662ff 100644
--- a/src/broadcom/cle/v3d_packet_v42.xml
+++ b/src/broadcom/cle/v3d_packet_v42.xml
@@ -782,17 +782,19 @@
<field name="Fragment Shader Code Address" size="32" start="12b" type="address"/>
<field name="Fragment Shader 4-way threadable" size="1" start="96" type="bool"/>
<field name="Fragment Shader start in final thread section" size="1" start="97" type="bool"/>
- <field name="Propagate NaNs" size="1" start="98" type="bool"/>
+ <field name="Fragment Shader Propagate NaNs" size="1" start="98" type="bool"/>
<field name="Fragment Shader Uniforms Address" size="32" start="16b" type="address"/>
<field name="Vertex Shader Code Address" size="32" start="20b" type="address"/>
<field name="Vertex Shader 4-way threadable" size="1" start="160" type="bool"/>
<field name="Vertex Shader start in final thread section" size="1" start="161" type="bool"/>
+ <field name="Vertex Shader Propagate NaNs" size="1" start="162" type="bool"/>
<field name="Vertex Shader Uniforms Address" size="32" start="24b" type="address"/>
<field name="Coordinate Shader Code Address" size="32" start="28b" type="address"/>
<field name="Coordinate Shader 4-way threadable" size="1" start="224" type="bool"/>
<field name="Coordinate Shader start in final thread section" size="1" start="225" type="bool"/>
+ <field name="Coordinate Shader Propagate NaNs" size="1" start="226" type="bool"/>
<field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="address"/>
</struct>
diff --git a/src/gallium/drivers/v3d/v3dx_draw.c b/src/gallium/drivers/v3d/v3dx_draw.c
index 28b35165c7..4d872b30ec 100644
--- a/src/gallium/drivers/v3d/v3dx_draw.c
+++ b/src/gallium/drivers/v3d/v3dx_draw.c
@@ -183,7 +183,9 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
shader.number_of_varyings_in_fragment_shader =
v3d->prog.fs->prog_data.base->num_inputs;
- shader.propagate_nans = true;
+ shader.coordinate_shader_propagate_nans = true;
+ shader.vertex_shader_propagate_nans = true;
+ shader.fragment_shader_propagate_nans = true;
shader.coordinate_shader_code_address =
cl_address(v3d->prog.cs->bo, 0);