Commit Graph

4377 Commits

Author SHA1 Message Date
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
Józef Kucia
95b11ba336 libs/vkd3d-shader: Translate dcl_input instructions. 2017-06-20 17:09:39 +02:00
Józef Kucia
88e20980a8 libs/vkd3d-shader: Translate dot product instructions. 2017-06-20 17:09:39 +02:00
Józef Kucia
ddcc403f73 libs/vkd3d-shader: Add missing vkd3d_free() call.
Fixes commit 0761568225.
2017-06-20 14:59:25 +02:00
Józef Kucia
c9a98c7a13 libs/vkd3d-shader: Add support for GLSL.std.450 extended instruction set. 2017-06-20 14:59:25 +02:00
Józef Kucia
801b4159de libs/vkd3d-shader: Translate some ALU instructions. 2017-06-20 14:14:44 +02:00
Józef Kucia
2c06f47432 tests: Remove fragment shader SPIR-V code from init_draw_test_context_(). 2017-06-20 13:34:44 +02:00
Józef Kucia
2b1396e7e4 libs/vkd3d-shader: Translate mov instruction. 2017-06-20 13:34:44 +02:00
Józef Kucia
18e952aaf4 libs/vkd3d-shader: Translate dcl_output_siv instruction. 2017-06-20 13:34:44 +02:00
Józef Kucia
0761568225 libs/vkd3d-shader: Translate dcl_output instruction. 2017-06-20 13:34:44 +02:00
Józef Kucia
d073652db9 libs/vkd3d-shader: Translate dcl_temps instruction.
"symbol_table" is possibly not the most fitting name.
2017-06-20 13:34:44 +02:00
Józef Kucia
8b416514c1 tests: Remove SPIR-V shader code from test_create_pipeline_state(). 2017-06-19 19:49:11 +02:00
Józef Kucia
c270d9a859 libs/vkd3d: Accept DXBC shaders. 2017-06-19 19:49:11 +02:00
Józef Kucia
d32134da48 libs/vkd3d-shader: Implement SM5 dcl_thread_group instruction. 2017-06-19 19:49:11 +02:00
Józef Kucia
1a5c6eaca1 build: Add LICENSE file to distribution. 2017-06-19 18:33:39 +02:00
Józef Kucia
c151662ded Update copyright info. 2017-06-19 18:24:39 +02:00
Józef Kucia
6f6d5c7850 libs/vkd3d: Use depth aspect mask for DXGI_FORMAT_D16_UNORM. 2017-06-19 18:19:19 +02:00
Józef Kucia
786a31ca4e libs/vkd3d-shader: Use libSPIRV-Tools for tracing and validating generated SPIR-V shaders.
SPIRV-Tools are an optional dependency.

We link with stdc++ because libSPIRV-Tools is a static library written
in C++.
2017-06-19 18:05:53 +02:00
Józef Kucia
dd31e5e918 libs/vkd3d-shader: Generate SPIR-V modules. 2017-06-19 18:05:53 +02:00
Józef Kucia
eff8428c71 libs/vkd3d-common: Move vkd3d_array_reserve() from libvkd3d. 2017-06-19 18:05:53 +02:00
Józef Kucia
465fe54a9b libs/vkd3d-shader: Implement vkd3d_shader_compile_dxbc(). 2017-06-19 18:05:53 +02:00
Józef Kucia
1f65d4ccc1 libs/vkd3d-shader: Add stub for SPIR-V generator. 2017-06-19 18:05:53 +02:00