Skip to content

Commit

Permalink
[d3d9] Don't assume 32 registers.
Browse files Browse the repository at this point in the history
  • Loading branch information
Etaash-mathamsetty committed Aug 12, 2023
1 parent 429555a commit 4ab1564
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 3 additions & 0 deletions src/dxso/dxso_compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ namespace dxvk {

m_usedSamplers = 0;
m_usedRTs = 0;
m_rRegs.reserve(32);

for (uint32_t i = 0; i < m_rRegs.size(); i++)
m_rRegs.at(i) = DxsoRegisterPointer{ };
Expand Down Expand Up @@ -1043,6 +1044,8 @@ namespace dxvk {
const DxsoBaseRegister* relative) {
switch (reg.id.type) {
case DxsoRegisterType::Temp: {
if (reg.id.num >= m_rRegs.size())
m_rRegs.resize( reg.id.num + 1, DxsoRegisterPointer { } );
DxsoRegisterPointer& ptr = m_rRegs.at(reg.id.num);
if (ptr.id == 0) {
std::string name = str::format("r", reg.id.num);
Expand Down
4 changes: 1 addition & 3 deletions src/dxso/dxso_compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,7 @@ namespace dxvk {
////////////////////////////////////////////////
// Temporary r# vector registers with immediate
// indexing, and x# vector array registers.
std::array<
DxsoRegisterPointer,
DxsoMaxTempRegs> m_rRegs;
std::vector<DxsoRegisterPointer> m_rRegs;

////////////////////////////////////////////////
// Predicate registers
Expand Down

0 comments on commit 4ab1564

Please sign in to comment.