diff options
| author | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 11:19:46 -0500 |
|---|---|---|
| committer | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 14:53:47 -0500 |
| commit | c83eb1d1f5c14d0842a165de431ac6367dff2909 (patch) | |
| tree | 2dafb5a896fb968b9baee2875837a7ca5ee12736 /src/core/memory.cpp | |
| parent | c5fb2d2a1dd3b47e6d7b4f6acf2bdfae325e2918 (diff) | |
shader: tell handle-program textures apart when adding descriptors
Every texture whose handle is computed per draw gets the same placeholder
constant buffer address (index 0, offset 0), and Descriptors::Add did not
compare handle_program. Two such textures of the same type and depth in one
shader therefore shared a descriptor, so the second sampled the first, and one
could also merge with a real texture bound at constant buffer 0 offset 0.
Compare handle_program too.
The pixel-format-integer lookup cached its last answer by (index, offset), which
has the same problem for handle programs; skip that cache for them.
Follow-up to 561f87abec.
Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
Diffstat (limited to 'src/core/memory.cpp')
0 files changed, 0 insertions, 0 deletions
