diff options
author | Jason Ekstrand <[email protected]> | 2018-09-04 13:58:01 -0500 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-09-06 16:07:50 -0500 |
commit | 7b26741806c521279a1b83f2eae40a277d806626 (patch) | |
tree | 15cd139541db96e3907f4f3a937a49fa8ecb0c37 | |
parent | 44ec31cd75f679b32afb03c3c9c46762e57ce506 (diff) |
anv/pipeline: Only consider double elements which actually exist
The brw_vs_prog_data::double_inputs_read field comes directly from
shader_info::double_inputs which may contain inputs which are not
actually read. Instead of using it directly, AND it with inputs_read
which is only things which are read. Otherwise, we may end up
subtracting too many elements when computing elem_count.
Cc: [email protected]
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103241
Reviewed-by: Lionel Landwerlin <[email protected]>
-rw-r--r-- | src/intel/vulkan/genX_pipeline.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index b531205508c..297e9455b51 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -91,7 +91,8 @@ emit_vertex_input(struct anv_pipeline *pipeline, /* Pull inputs_read out of the VS prog data */ const uint64_t inputs_read = vs_prog_data->inputs_read; - const uint64_t double_inputs_read = vs_prog_data->double_inputs_read; + const uint64_t double_inputs_read = + vs_prog_data->double_inputs_read & inputs_read; assert((inputs_read & ((1 << VERT_ATTRIB_GENERIC0) - 1)) == 0); const uint32_t elements = inputs_read >> VERT_ATTRIB_GENERIC0; const uint32_t elements_double = double_inputs_read >> VERT_ATTRIB_GENERIC0; |