mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 19:54:19 +01:00
[d3d9] Don't emit 1-sized vector type in SWVP Emu
Fixes a validation error.
This commit is contained in:
parent
900edf55b5
commit
c8791a6ba5
@ -262,8 +262,8 @@ namespace dxvk {
|
||||
|
||||
// Bitcast to dwords before we write.
|
||||
uint32_t dwordCount = GetDecltypeSize(D3DDECLTYPE(element.Type)) / sizeof(uint32_t);
|
||||
uint32_t dwordVector = m_module.opBitcast(
|
||||
m_module.defVectorType(uint_t, dwordCount),
|
||||
uint32_t dwordVal = m_module.opBitcast(
|
||||
dwordCount != 1 ? m_module.defVectorType(uint_t, dwordCount) : uint_t,
|
||||
componentSet);
|
||||
|
||||
// Finally write each dword to the buffer!
|
||||
@ -271,7 +271,7 @@ namespace dxvk {
|
||||
std::array<uint32_t, 2> bufferIndices = { m_module.constu32(0), elementOffset };
|
||||
|
||||
uint32_t writeDest = m_module.opAccessChain(m_module.defPointerType(uint_t, spv::StorageClassUniform), buffer, bufferIndices.size(), bufferIndices.data());
|
||||
uint32_t currentDword = m_module.opCompositeExtract(uint_t, dwordVector, 1, &i);
|
||||
uint32_t currentDword = dwordCount != 1 ? m_module.opCompositeExtract(uint_t, dwordVal, 1, &i) : dwordVal;
|
||||
|
||||
m_module.opStore(writeDest, currentDword);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user