mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-18 13:54:16 +01:00
[d3d11] Add range checking to SOGetTargets
This commit is contained in:
parent
11a02831a9
commit
2d9c229eaa
@ -3062,8 +3062,11 @@ namespace dxvk {
|
||||
ID3D11Buffer** ppSOTargets) {
|
||||
D3D10DeviceLock lock = LockContext();
|
||||
|
||||
for (uint32_t i = 0; i < NumBuffers; i++)
|
||||
ppSOTargets[i] = m_state.so.targets[i].buffer.ref();
|
||||
for (uint32_t i = 0; i < NumBuffers; i++) {
|
||||
ppSOTargets[i] = i < m_state.so.targets.size()
|
||||
? m_state.so.targets[i].buffer.ref()
|
||||
: nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3074,11 +3077,19 @@ namespace dxvk {
|
||||
D3D10DeviceLock lock = LockContext();
|
||||
|
||||
for (uint32_t i = 0; i < NumBuffers; i++) {
|
||||
if (ppSOTargets != nullptr)
|
||||
ppSOTargets[i] = m_state.so.targets[i].buffer.ref();
|
||||
const bool inRange = i < m_state.so.targets.size();
|
||||
|
||||
if (pOffsets != nullptr)
|
||||
pOffsets[i] = m_state.so.targets[i].offset;
|
||||
if (ppSOTargets != nullptr) {
|
||||
ppSOTargets[i] = inRange
|
||||
? m_state.so.targets[i].buffer.ref()
|
||||
: nullptr;
|
||||
}
|
||||
|
||||
if (pOffsets != nullptr) {
|
||||
pOffsets[i] = inRange
|
||||
? m_state.so.targets[i].offset
|
||||
: 0u;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user