Commit Graph

4098 Commits

Author SHA1 Message Date
Józef Kucia e623583048 libs/vkd3d-shader: Translate value preserving conversion instructions. 2017-06-28 12:28:09 +02:00
Józef Kucia 0cbd632bd3 tests: Add more tests for control flow 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 19cb3aa0ed tests: Add test for ID3D12RootSignatureDeserializer. 2017-06-27 13:16:47 +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 dc26657398 tests: Add visual test for eq instruction. 2017-06-26 17:03:31 +02:00
Józef Kucia 3178e25cb5 tests: Add visual test for ne instruction. 2017-06-26 17:03:31 +02:00
Józef Kucia 0f77fb3435 tests: Add visual test for if instruction. 2017-06-26 17:03:31 +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
Józef Kucia be9849ace4 libs/vkd3d: Avoid race condition when destroying fences. 2017-06-26 17:03:31 +02:00
Józef Kucia ae8d869013 libs/vkd3d: Use VK_NULL_HANDLE instead of NULL.
Fixes a compiler warning for 32-bit builds.
2017-06-26 17:03:31 +02:00
Józef Kucia 2c4a4bd816 tests: Add initial visual test for shader instructions. 2017-06-23 22:24:33 +02:00
Józef Kucia becd93c8bd libs/vkd3d-shader: Emit Offset decoration for uniform buffer struct members.
The SPIR-V spec says:

  "Composite objects in the UniformConstant, Uniform, and PushConstant Storage
  Classes must be explicitly laid out."

Intel Anvil driver uses uninitialized memory for offsets when Offset
decorations are missing.
2017-06-23 22:24:33 +02:00
Józef Kucia 55aa937df7 tests: Make test context more flexible. 2017-06-23 22:24:33 +02:00
Józef Kucia a646e7ed34 tests: Prefer green color for tests success. 2017-06-23 22:24:33 +02:00
Józef Kucia 9a59184e9f libs/vkd3d: Reset current root signature in d3d12_command_list_Reset(). 2017-06-23 22:24:33 +02:00
Józef Kucia 532da7d4e1 libs/vkd3d: Clear current descriptor set when descriptor pool is destroyed. 2017-06-23 22:24:33 +02:00
Józef Kucia fa52702774 libs/vkd3d: Always update current root signature in d3d12_command_list_SetGraphicsRootSignature(). 2017-06-23 22:24:33 +02:00
Józef Kucia c0b5cf3df6 libs/vkd3d: Avoid updating descriptor sets bound to recording command buffer.
Fixes GPU memory page faults in gears demo on Nvidia.

The Vulkan spec says:

  "The descriptor set contents bound by a call to
  vkCmdBindDescriptorSets may be consumed during host execution of the
  command, or during shader execution of the resulting draws, or any
  time in between. Thus, the contents must not be altered (overwritten
  by an update command, or freed) between when the command is recorded
  and when the command completes executing on the queue."
2017-06-23 22:24:33 +02:00
Józef Kucia fe61e0ba22 tests: Add test for fractional viewports. 2017-06-22 13:36:18 +02:00
Józef Kucia 99d82668a0 libs/vkd3d-shader: Avoid generating 2 OpVectorShuffles per mov instruction. 2017-06-22 13:36:18 +02:00
Józef Kucia 05842705b4 libs/vkd3d-shader: Enforce required component count for builtin shader inputs. 2017-06-22 13:36:18 +02:00
Józef Kucia 4e5fcb5141 libs/vkd3d: Use negative viewport height to flip along y-axis.
Requires VK_KHR_maintenance1.
2017-06-21 22:00:19 +02:00
Józef Kucia d515e3d047 libs/vkd3d: Require VK_KHR_maintenance1 device extension. 2017-06-21 22:00:19 +02:00
Józef Kucia b288c9e672 tests: Add test for fragment coordinates. 2017-06-21 22:00:19 +02:00
Józef Kucia 4ced2e7789 libs/vkd3d-shader: Translate "neg" source modifier. 2017-06-21 22:00:19 +02:00
Józef Kucia f5e3b248df libs/vkd3d-shader: Fix SV_Position in pixel shaders. 2017-06-21 22:00:19 +02:00
Józef Kucia 9880d78058 libs/vkd3d-shader: Translate dcl_input_ps_siv instruction. 2017-06-21 22:00:19 +02:00
Józef Kucia d35c02be8c tests: Remove vertex shader SPIR-V code from init_draw_test_context_(). 2017-06-21 12:22:20 +02:00
Józef Kucia 9948abda96 libs/vkd3d: Flip SV_Position.y in last vertex processing shader stage.
The handwritten GLSL shaders do this.
2017-06-21 12:22:20 +02:00
Józef Kucia 67a8200933 libs/vkd3d-shader: Implement VKD3D_SHADER_FLIP_Y option. 2017-06-21 12:22:20 +02:00
Józef Kucia 989a80fef7 libs/vkd3d-shader: Fix TRACE() message in vkd3d_spirv_dump(). 2017-06-21 12:22:20 +02:00
Józef Kucia 252a2ea353 libs/vkd3d-common: Fix assert() condition. 2017-06-21 12:22:19 +02:00
Józef Kucia f7e738c27a libs/vkd3d-common: Terminate string with '\0' unconditionally in vkd3d_debug_sprintf(). 2017-06-21 12:22:19 +02:00
Józef Kucia feb5e8259c libs/vkd3d-shader: Translate dcl_constantbuffer instruction. 2017-06-20 17:09:39 +02:00
Józef Kucia 8b2b2c1b6b libs/vkd3d-shader: Translate bfi instruction. 2017-06-20 17:09:39 +02:00