[dxbc] Add definitions for extended double instructions

This commit is contained in:
Philip Rebohle 2018-08-15 19:40:15 +02:00
parent 0b1b898be4
commit fabcdbc3ae
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
4 changed files with 60 additions and 3 deletions

View File

@ -37,7 +37,7 @@ else
lib_vulkan = dxvk_compiler.find_library('vulkan-1', dirs : dxvk_library_path)
lib_d3d11 = dxvk_compiler.find_library('d3d11')
lib_dxgi = dxvk_compiler.find_library('dxgi')
lib_d3dcompiler = dxvk_compiler.find_library('d3dcompiler_43', dirs : dxvk_library_path)
lib_d3dcompiler = dxvk_compiler.find_library('d3dcompiler_47', dirs : dxvk_library_path)
exe_ext = ''
dll_ext = ''
def_spec_ext = '.def'

View File

@ -2,7 +2,7 @@
namespace dxvk {
const std::array<DxbcInstFormat, 207> g_instructionFormats = {{
const std::array<DxbcInstFormat, 218> g_instructionFormats = {{
/* Add */
{ 3, DxbcInstClass::VectorAlu, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float32 },
@ -1045,6 +1045,52 @@ namespace dxvk {
{ 1, DxbcInstClass::Declaration, {
{ DxbcOperandKind::Imm32, DxbcScalarType::Uint32 },
} },
/* Abort */
{ },
/* DebugBreak */
{ },
/* ReservedBegin11_1 */
{ },
/* DDiv */
{ 3, DxbcInstClass::VectorAlu, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
} },
/* DFma */
{ 4, DxbcInstClass::VectorAlu, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
} },
/* DRcp */
{ 2, DxbcInstClass::VectorAlu, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
} },
/* Msad */
{ },
/* DtoI */
{ 2, DxbcInstClass::ConvertFloat64, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Sint32 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
} },
/* DtoU */
{ 2, DxbcInstClass::ConvertFloat64, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
} },
/* ItoD */
{ 2, DxbcInstClass::ConvertFloat64, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
} },
/* UtoD */
{ 2, DxbcInstClass::ConvertFloat64, {
{ DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
{ DxbcOperandKind::SrcReg, DxbcScalarType::Uint32 },
} },
}};

View File

@ -215,6 +215,17 @@ namespace dxvk {
EvalSampleIndex = 204,
EvalCentroid = 205,
DclGsInstanceCount = 206,
Abort = 207,
DebugBreak = 208,
ReservedBegin11_1 = 209,
DDiv = 210,
DFma = 211,
DRcp = 212,
Msad = 213,
DtoI = 214,
DtoU = 215,
ItoD = 216,
UtoD = 217,
};

View File

@ -1,6 +1,6 @@
test_dxbc_deps = [ dxbc_dep, dxvk_dep ]
executable('dxbc-compiler'+exe_ext, files('test_dxbc_compiler.cpp'), dependencies : test_dxbc_deps, install : true, override_options: ['cpp_std='+dxvk_cpp_std])
executable('dxbc-disasm'+exe_ext, files('test_dxbc_disasm.cpp'), dependencies : [ test_dxbc_deps, lib_d3dcompiler ], install : true, override_options: ['cpp_std='+dxvk_cpp_std])
#executable('dxbc-disasm'+exe_ext, files('test_dxbc_disasm.cpp'), dependencies : [ test_dxbc_deps, lib_d3dcompiler ], install : true, override_options: ['cpp_std='+dxvk_cpp_std])
executable('hlsl-compiler'+exe_ext, files('test_hlsl_compiler.cpp'), dependencies : [ test_dxbc_deps, lib_d3dcompiler ], install : true, override_options: ['cpp_std='+dxvk_cpp_std])