Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vertex attributes missing from attribute array (regression) #1609

Closed
billhollings opened this issue Jun 6, 2022 · 2 comments · Fixed by #2222
Closed

Vertex attributes missing from attribute array (regression) #1609

billhollings opened this issue Jun 6, 2022 · 2 comments · Fixed by #2222
Assignees
Labels
Bug Completed Issue has been fixed, or enhancement implemented. CTS Issue causes a failure of one or more CTS tests

Comments

@billhollings
Copy link
Contributor

PR #1595 (which fixed issue #1592) introduced a smaller secondary regression that causes the following CTS tests to Fail instead of Pass:

dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_one.interleaved
dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.sequential

Any fix to this should be validated by the posters of the original issue #1592.

@billhollings billhollings added Bug CTS Issue causes a failure of one or more CTS tests labels Jun 6, 2022
@billhollings billhollings self-assigned this Jun 6, 2022
@spnda
Copy link
Collaborator

spnda commented Jan 11, 2024

perhaps related, but CTS crashes for me on the following test case with the following Metal validation error:
dEQP-VK.robustness.robustness1_vertex_access.out_of_bounds_stride_30_middle_of_buffer

-[MTLVertexDescriptorInternal newSerializedDescriptor]:743: failed assertion `Serialized Descriptor Creation
None of the attributes set bufferIndex to 29, but MTLVertexDescriptor set buffer layout[29].stride(80).
'

@aitor-lunarg
Copy link
Collaborator

The issue comes from not correctly setting the maximum bound used vertex buffer binding. initReservedVertexAttributeBufferCount reserves more than the used vertex buffers by the pipeline. However, when we set the vertexDescriptor data for those buffers, we skip the ones that are not used.

This issue can fixed by ignoring the vertex buffers that are not used when we reserve the bindings. Hacked values to check if that would fix the issue and the tests pass. I need to get a better understanding on how to propose the change since the data we require for the solution is only filled after the function that calls initReservedVertexAttributeBufferCount. Will come back to this issue once remaining CTS failures are triaged. Leaving this as a note for myself, or for anyone wanting to fix the issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Completed Issue has been fixed, or enhancement implemented. CTS Issue causes a failure of one or more CTS tests
Projects
None yet
3 participants