mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-02 10:24:12 +01:00
[dxbc] Fix sampleinfo_uint instruction
This commit is contained in:
parent
d68d62f837
commit
5cb65a6c19
@ -2709,9 +2709,8 @@ namespace dxvk {
|
|||||||
// TODO Check if resource is bound
|
// TODO Check if resource is bound
|
||||||
DxbcRegisterValue sampleCount = emitQueryTextureSamples(ins.src[0]);
|
DxbcRegisterValue sampleCount = emitQueryTextureSamples(ins.src[0]);
|
||||||
|
|
||||||
if (ins.controls.resinfoType != DxbcResinfoType::Uint) {
|
if (ins.controls.returnType != DxbcInstructionReturnType::Uint) {
|
||||||
sampleCount.type.ctype = DxbcScalarType::Float32;
|
sampleCount.type = { DxbcScalarType::Float32, 1 };
|
||||||
sampleCount.type.ccount = 1;
|
|
||||||
sampleCount.id = m_module.opConvertUtoF(
|
sampleCount.id = m_module.opConvertUtoF(
|
||||||
getVectorTypeId(sampleCount.type),
|
getVectorTypeId(sampleCount.type),
|
||||||
sampleCount.id);
|
sampleCount.id);
|
||||||
|
@ -108,6 +108,8 @@ namespace dxvk {
|
|||||||
// Opcode controls. It will depend on the
|
// Opcode controls. It will depend on the
|
||||||
// opcode itself which ones are valid.
|
// opcode itself which ones are valid.
|
||||||
// TODO refactor this nonsense
|
// TODO refactor this nonsense
|
||||||
|
m_instruction.controls.returnType =
|
||||||
|
static_cast<DxbcInstructionReturnType>(bit::extract(token, 11, 11));
|
||||||
m_instruction.controls.globalFlags =
|
m_instruction.controls.globalFlags =
|
||||||
static_cast<DxbcGlobalFlag>(bit::extract(token, 11, 14));
|
static_cast<DxbcGlobalFlag>(bit::extract(token, 11, 14));
|
||||||
m_instruction.controls.zeroTest =
|
m_instruction.controls.zeroTest =
|
||||||
|
@ -240,20 +240,21 @@ namespace dxvk {
|
|||||||
* only one of the members will be valid.
|
* only one of the members will be valid.
|
||||||
*/
|
*/
|
||||||
struct DxbcShaderOpcodeControls {
|
struct DxbcShaderOpcodeControls {
|
||||||
DxbcGlobalFlags globalFlags;
|
DxbcInstructionReturnType returnType;
|
||||||
DxbcZeroTest zeroTest;
|
DxbcGlobalFlags globalFlags;
|
||||||
DxbcSyncFlags syncFlags;
|
DxbcZeroTest zeroTest;
|
||||||
DxbcResourceDim resourceDim;
|
DxbcSyncFlags syncFlags;
|
||||||
DxbcResinfoType resinfoType;
|
DxbcResourceDim resourceDim;
|
||||||
DxbcInterpolationMode interpolation;
|
DxbcResinfoType resinfoType;
|
||||||
DxbcSamplerMode samplerMode;
|
DxbcInterpolationMode interpolation;
|
||||||
DxbcPrimitiveTopology primitiveTopology;
|
DxbcSamplerMode samplerMode;
|
||||||
DxbcPrimitive primitive;
|
DxbcPrimitiveTopology primitiveTopology;
|
||||||
DxbcTessDomain tessDomain;
|
DxbcPrimitive primitive;
|
||||||
DxbcTessOutputPrimitive tessOutputPrimitive;
|
DxbcTessDomain tessDomain;
|
||||||
DxbcTessPartitioning tessPartitioning;
|
DxbcTessOutputPrimitive tessOutputPrimitive;
|
||||||
DxbcUavFlags uavFlags;
|
DxbcTessPartitioning tessPartitioning;
|
||||||
uint32_t controlPointCount;
|
DxbcUavFlags uavFlags;
|
||||||
|
uint32_t controlPointCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user