Commit Graph

3379 Commits

Author SHA1 Message Date
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
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