mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-14 18:23:52 +01:00
41 lines
906 B
C++
41 lines
906 B
C++
#pragma once
|
|
|
|
#include "dxso_decoder.h"
|
|
|
|
namespace dxvk {
|
|
|
|
struct DxsoIsgnEntry {
|
|
uint32_t regNumber = 0;
|
|
uint32_t slot = 0;
|
|
DxsoSemantic semantic = DxsoSemantic{ DxsoUsage::Position, 0 };
|
|
DxsoRegMask mask = IdentityWriteMask;
|
|
bool centroid = false;
|
|
};
|
|
|
|
struct DxsoIsgn {
|
|
std::array<
|
|
DxsoIsgnEntry,
|
|
2 * DxsoMaxInterfaceRegs> elems;
|
|
uint32_t elemCount = 0;
|
|
};
|
|
|
|
struct DxsoDefinedConstant {
|
|
uint32_t uboIdx;
|
|
|
|
// Only float constants may be indexed.
|
|
// So that's the only ones we care about putting in the UBO.
|
|
float float32[4];
|
|
};
|
|
|
|
using DxsoDefinedConstants = std::vector<DxsoDefinedConstant>;
|
|
|
|
struct DxsoShaderMetaInfo {
|
|
bool needsConstantCopies = false;
|
|
uint32_t maxConstIndexF = 0;
|
|
uint32_t maxConstIndexI = 0;
|
|
uint32_t maxConstIndexB = 0;
|
|
|
|
uint32_t boolConstantMask = 0;
|
|
};
|
|
|
|
} |