1
0
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:
Philip Rebohle 2018-04-09 22:52:59 +02:00
parent d68d62f837
commit 5cb65a6c19
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 19 additions and 17 deletions

View File

@ -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);

View File

@ -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 =

View File

@ -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;
}; };