summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2019-05-18 00:29:21 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2019-05-20 16:47:39 -0700
commitcf05ffbfd634d384d60cfd3330f4bcbe0f7c3f8d (patch)
tree346c08ae43c80e93e77e0f8c88c94c31f5abf18d /src/intel
parent005cc9ae37ca45960d87389dc9eace5ed29d1b99 (diff)
anv: Don't re-use entry_point pointer from spirv_to_nir
When running with NIR_TEST_CLONE=1, the pointer will not be valid, as the whole shader is going to be recreated every pass. Prefer using is_entrypoint (to query when looping) and nir_shader_get_entrypoint() instead. Fixes the Vulkan Piglit tests - vulkan/glsl450/frexp-double - vulkan/glsl450/isinf-double - vulkan/shaders/fs-multiple-large-local-array Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108957 Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_pipeline.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index e04f1acab4a..df9a968f854 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -212,7 +212,7 @@ anv_shader_compile_to_nir(struct anv_device *device,
/* Pick off the single entrypoint that we want */
foreach_list_typed_safe(nir_function, func, node, &nir->functions) {
- if (func != entry_point)
+ if (!func->is_entrypoint)
exec_node_remove(&func->node);
}
assert(exec_list_length(&nir->functions) == 1);
@@ -238,7 +238,7 @@ anv_shader_compile_to_nir(struct anv_device *device,
NIR_PASS_V(nir, nir_propagate_invariant);
NIR_PASS_V(nir, nir_lower_io_to_temporaries,
- entry_point->impl, true, false);
+ nir_shader_get_entrypoint(nir), true, false);
NIR_PASS_V(nir, nir_lower_frexp);