[dxbc] Implemented Nop instruction

Required for Metal Gear Solid V.
This commit is contained in:
Philip Rebohle 2018-04-11 01:49:39 +02:00
parent f3544cc8e1
commit 8ea17e7a25
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
4 changed files with 6 additions and 2 deletions

View File

@ -96,6 +96,9 @@ namespace dxvk {
case DxbcInstClass::Interpolate:
return this->emitInterpolate(ins);
case DxbcInstClass::NoOperation:
return;
case DxbcInstClass::TextureQuery:
return this->emitTextureQuery(ins);

View File

@ -282,7 +282,7 @@ namespace dxvk {
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float32 },
} },
/* Nop */
{ },
{ 0, DxbcInstClass::NoOperation },
/* Not */
{ 2, DxbcInstClass::VectorAlu, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },

View File

@ -44,6 +44,7 @@ namespace dxvk {
HullShaderPhase, ///< Hull shader phase declaration
HullShaderInstCnt, ///< Hull shader phase instance count
Interpolate, ///< Input attribute interpolation
NoOperation, ///< The most useful instruction class
TextureQuery, ///< Texture query instruction
TextureQueryLod, ///< Texture LOD query instruction
TextureQueryMs, ///< Multisample texture query

View File

@ -11,7 +11,7 @@ namespace dxvk {
if (vendor == DxvkGpuVendor::Nvidia
&& (devProps.driverVersion < VK_MAKE_VERSION(396, 18, 0)
|| getEnvVar(L"__GL_NextGenCompiler") == "0")) {
|| env::getEnvVar(L"__GL_NextGenCompiler") == "0")) {
// Older versions of the driver expect the
// coordinate vector to have an extra component
this->addExtraDrefCoordComponent = true;