Repository navigation
fix(agc): read zero for vertex attributes behind a null V# - #1969
Conversation
|
Linux results, since this was tested on Windows only. Everything passes here. Nobara 44 (Linux 7.2), GCC 16.2.1, Release,
The CPU failure is |
9774ce0 to
d57d743
Compare
d57d743 to
c2cb2b3
Compare
|
This conflicts with main again after today's merges ( |
|
Rebased onto current
|
c2cb2b3 to
39d54b2
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39d54b2 to
f1c15c2
Compare
|
Rebased onto current |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
…ffer-descriptor fix(agc): read zero for vertex attributes behind a null V#
What
A vertex attribute whose V# is all zero has no address, no records and no format. Its
DST_SELfields are 0, which selects 0, so on hardware every fetch through it reads 0.DecodeVertexFormatthrewunsupported vertex format 0for it, which stopped PPSA12544 after its intro.NullVertexDescriptorrecognizes the all-zero V#.DecodeVertexFormatgives it an R32 float format of the attribute's component count.VertexBufferReadSizeandVertexBufferExtentreturn that format's size (at most 16 bytes) instead of a guest range.zeroVertexBuffer: 16 zeroed bytes created with the device, next toemptyBuffer. The layout gives the attribute stride 0.TechnicalDebt.md(Functional).Tested
nullVertexDescriptorTestsinagc_driver_graphics: 1 to 4 components, sizes within the zero buffer, and format 0 with an address still rejected. Without the decoder change it fails withunsupported vertex format 0.ctest: 487 of 488 passed. The failure isagc_driver_pixel_lds, which also fails on unmodifiedmainon this GPU.agc_driver_recorder_tests, run directly: passed.tut_01. With eager write-back the scene renders correctly. Its lazy write-back problem is separate (agc-driver: write-back drops GPU results of full 64 KiB blocks of 1920x1080 render targets (PPSA12544 backgrounds garbled) #1970).tools/check_conventions.py --base origin/mainpasses.Conflicts with #1968 only in
tests/Graphics.cpp, where both add a test at the same place. I'll rebase whichever merges second.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code