Commit Graph

243 Commits

Author SHA1 Message Date
Henri Verbeet d61b6a3545 include: Add the missing "values" parameter to ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat(). 2017-07-11 12:21:15 +02:00
Henri Verbeet 99d2ba411e include: Add the missing ClearUnorderedAccessViewUint() method to the ID3D12GraphicsCommandList interface. 2017-07-11 12:21:11 +02:00
Henri Verbeet 0b656c8354 build: Add a pkg-config file for libvkd3d-utils. 2017-07-10 16:32:01 +02:00
Józef Kucia 682e725d6e libs/vkd3d-shader: Add support for multiple shader outputs packed into single register. 2017-07-10 15:33:34 +02:00
Józef Kucia 7f1242888e libs/vkd3d-shader: Recognize vThreadIDInGroup register. 2017-07-10 15:33:34 +02:00
Józef Kucia 2e6f80e24c libs/vkd3d-shader: Pass buffer size to vkd3d_dxbc_compiler_get_register_name(). 2017-07-10 15:33:34 +02:00
Józef Kucia 649a814b23 libs/vkd3d-shader: Use ERR() instead of FIXME() in vkd3d_dxbc_compiler_emit_ext_glsl_instruction().
vkd3d_dxbc_compiler_emit_ext_glsl_instruction() is called only for
implemented instructions.
2017-07-10 15:33:34 +02:00
Józef Kucia 4c448f0a35 libs/vkd3d-shader: Recognize vThreadID register. 2017-07-10 15:33:34 +02:00
Józef Kucia bf3896adc4 libs/vkd3d-shader: Decorate shader inputs with Component decoration.
Needed when multiple inputs are stored in a single register.
2017-07-10 15:33:34 +02:00
Józef Kucia c6b6a9d542 libs/vkd3d-shader: Add support for multiple shader inputs packed into single register. 2017-07-10 15:33:34 +02:00
Józef Kucia 3f546c8782 libs/vkd3d: Add DXGI_FORMAT_R32_UINT. 2017-07-10 15:33:34 +02:00
Józef Kucia f5319efa4b libs/vkd3d-shader: Translate f32tof16 instruction. 2017-07-06 18:11:57 +02:00
Józef Kucia 83392c92a3 libs/vkd3d-shader: Translate f16tof32 instruction. 2017-07-06 18:11:57 +02:00
Józef Kucia 03ab3d25bc libs/vkd3d-shader: Upgrade FIXME() to ERR() in vkd3d_dxbc_compiler_emit_alu_instruction().
vkd3d_dxbc_compiler_emit_alu_instruction() is called only for
implemented instructions.
2017-07-06 18:11:57 +02:00
Józef Kucia 24134b20fd libs/vkd3d-shader: Translate xor, or and not instructions. 2017-07-06 18:11:57 +02:00
Józef Kucia cb125d0020 libs/vkd3d-shader: Fix swizzling for non floating-point result values.
Avoids incorrect bitcasts.
2017-07-06 18:11:57 +02:00
Józef Kucia fe522495aa libs/vkd3d-shader: Get rid of needless temporary variables. 2017-07-06 10:12:22 +02:00
Józef Kucia f906df13b3 libs/vkd3d-shader: Implement parsing of root signature static samplers. 2017-07-06 10:12:22 +02:00
Józef Kucia 0633cfc55d libs/vkd3d-shader: Implement "absneg" source modifiers. 2017-06-29 13:40:27 +02:00
Józef Kucia 70f5b24f92 libs/vkd3d-shader: Avoid using GLSL.std450 NMin, NMax and NClamp opcodes.
These opcodes were implemented by Mesa just few days ago. In addition
using these opcodes in a shader leads to a crash on Nvidia.

In practice this change doesn't seem to make a difference. We still want
to use NMin, NMax and NClamp for correctness. This commit is meant to be
reverted when problems with these opcodes are resolved.
2017-06-29 13:40:27 +02:00
Józef Kucia c9b271f3c7 libs/vkd3d-shader: Implement _sat destination modifier. 2017-06-29 13:40:27 +02:00
Józef Kucia cd1f9118ee libs/vkd3d-shader: Translate floating-point min/max instructions to NMin/NMax.
The semantics of NMin and NMax match special handling required for NaN.
2017-06-29 13:40:27 +02:00
Józef Kucia f8b25dcea4 libs/vkd3d-shader: Implement "neg" modifier for integers. 2017-06-29 09:02:50 +02:00
Józef Kucia 169b1e7885 libs/vkd3d-shader: Translate movc instruction. 2017-06-29 09:02:50 +02:00
Józef Kucia 0ef0b54eed libs/vkd3d-shader: Translate SM5 bit instructions. 2017-06-29 09:02:50 +02:00
Józef Kucia b2f8454a0f libs/vkd3d-shader: Translate ishl instruction. 2017-06-29 09:02:50 +02:00
Józef Kucia 1e7fc384fc libs/vkd3d-shader: Translate ishr instruction. 2017-06-29 09:02:50 +02:00
Józef Kucia 4de9405a7b libs/vkd3d-shader: Allow input declarations with no write mask. 2017-06-29 09:02:50 +02:00
Józef Kucia c708c56d7b libs/vkd3d-shader: Translate ushr instruction. 2017-06-28 12:28:09 +02:00
Józef Kucia 32cc44150d libs/vkd3d-shader: Translate bitfield instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia dffa2ad80f libs/vkd3d-shader: Use signed integer format when masking bitfield instruction operands.
This shouldn't be strictly needed, but it fixes bfi on Nvidia.
2017-06-28 12:28:09 +02:00
Józef Kucia 2c139bdf81 libs/vkd3d-shader: Mask immediate constant operands for bitfield instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia e623583048 libs/vkd3d-shader: Translate value preserving conversion instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia 7e71b86031 libs/vkd3d-shader: Track current block for control flow instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia 170168c9cb libs/vkd3d-shader: Implement more floating-point comparison instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia 3190fbffb7 libs/vkd3d-shader: Translate iadd instruction. 2017-06-27 22:21:43 +02:00
Józef Kucia 6eb2d9cee4 libs/vkd3d-shader: Translate ieq instruction. 2017-06-27 22:21:43 +02:00
Józef Kucia 6fa98eb77c libs/vkd3d-shader: Implement absolute value source modifier. 2017-06-27 22:21:43 +02:00
Józef Kucia 30018181e0 libs/vkd3d-shader: Translate sqrt instruction. 2017-06-27 22:21:43 +02:00
Józef Kucia 8f6af1125d libs/vkd3d-shader: Get rid of VKD3D_SHADER_FLIP_Y compiler option.
We use negative viewport height to flip Y.
2017-06-27 22:21:43 +02:00
Józef Kucia 0afe0032b0 libs/vkd3d-shader: Add VKD3D_SHADER_STRIP_DEBUG compiler option. 2017-06-27 22:21:43 +02:00
Józef Kucia dbfa823b42 libs/vkd3d-shader: Translate min/max instructions. 2017-06-27 22:21:43 +02:00
Józef Kucia 3f03cd1ec8 libs/vkd3d-shader: Implement root signature parsing. 2017-06-27 13:16:47 +02:00
Józef Kucia d220ae4bfb libs/vkd3d: Add ID3D12RootSignatureDeserializer interface stub. 2017-06-27 13:16:47 +02:00
Józef Kucia d998cb88c5 libs/vkd3d-shader: Implement constant interpolation mode.
For gears demo.
2017-06-27 13:16:47 +02:00
Józef Kucia 00b1a83ef5 libs/vkd3d-shader: Translate if/else/endif instructions. 2017-06-26 17:03:31 +02:00
Józef Kucia 7f4f305225 libs/vkd3d-shader: Introduce vkd3d_spirv_alloc_id() helper function. 2017-06-26 17:03:31 +02:00
Józef Kucia 77b3c5858f libs/vkd3d-shader: Pass format string to vkd3d_spirv_build_op_name(). 2017-06-26 17:03:31 +02:00
Józef Kucia cb79f2ec65 libs/vkd3d-shader: Implement floating-point comparison instructions. 2017-06-26 17:03:31 +02:00
Józef Kucia cd8eb358e9 libs/vkd3d-shader: Refactor immediate constants handling. 2017-06-26 17:03:31 +02:00