Józef Kucia
0d28036d2a
libs/vkd3d: Add UAV counter support for compute pipelines.
...
UAV counter descriptors are stored in a separate VkDescriptorSet.
A VkPipelineLayout created for compute pipeline is compatible for all
other descriptor sets with the VkPipelineLayout created for the root
signature. This ensures that only UAV counter bindings in the last
descriptor set may be disturbed when switching between pipelines with
compatible root signatures.
The implementation of vkd3d_popcount() is based on
https://graphics.stanford.edu/~seander/bithacks.html
2017-09-08 15:04:30 +02:00
Józef Kucia
37f4c9d2a3
libs/vkd3d: Print only TRACE() messages for not initialized descriptors.
...
A descriptor do not have to be initialized if it is not used by shaders.
2017-09-07 17:48:43 +02:00
Józef Kucia
30cd4cc59f
libs/vkd3d-shader: Always declare format for raw/structured image variables.
2017-09-07 17:48:43 +02:00
Józef Kucia
6dfb4ad520
libs/vkd3d-shader: Mark imm_atomic_alloc as UAV read instruction.
2017-09-07 17:48:43 +02:00
Józef Kucia
4af15035df
libs/vkd3d-shader: Improve some debug messages.
2017-09-07 17:48:43 +02:00
Józef Kucia
3191e1eaa9
libs/vkd3d-shader: Implement UAV counters instructions.
2017-09-07 17:15:54 +02:00
Józef Kucia
5ef6f71996
libs/vkd3d-shader: Emit declarations for UAV counters.
2017-09-07 17:15:54 +02:00
Józef Kucia
7416c83ae2
libs/vkd3d-shader: Rename vkd3d_descriptor_type to vkd3d_shader_descriptor_type.
2017-09-07 17:15:54 +02:00
Józef Kucia
efdf2ec691
libs/vkd3d-shader: Rename vkd3d_shader_push_constant to vkd3d_shader_push_constant_buffer.
...
This should be clearer. Multiple constant buffers can be assigned to
a single push constant range.
2017-09-07 17:15:54 +02:00
Józef Kucia
bd0c886281
libs/vkd3d: Store push constant ranges in root signatures.
...
In prep for UAV counters support.
2017-09-07 17:15:54 +02:00
Józef Kucia
ce8a0290b4
libs/vkd3d: Factor out vkd3d_create_pipeline_layout() function.
2017-09-07 17:15:54 +02:00
Józef Kucia
22b019137b
libs/vkd3d: Factor out vkd3d_create_descriptor_set_layout() function.
2017-09-07 17:15:53 +02:00
Józef Kucia
f587670445
libs/vkd3d: Drop support for SPIR-V shaders.
2017-09-07 17:15:53 +02:00
Józef Kucia
495bd6fddc
libs/vkd3d: Create Vulkan buffer views for UAV counter resources.
2017-09-07 17:15:53 +02:00
Józef Kucia
23150f6050
libs/vkd3d: Update Vulkan descriptor sets just before draw call.
2017-09-05 11:53:55 +02:00
Józef Kucia
36d7578093
libs/vkd3d: Move descriptor set functions closer to top of file.
...
In prep for the next commit.
2017-09-05 11:53:55 +02:00
Józef Kucia
9eee65c3ab
libs/vkd3d: Validate root signature size.
2017-09-05 11:53:55 +02:00
Józef Kucia
603a44fb46
libs/vkd3d: Implement d3d12_device_CopyDescriptors().
...
There is no easy way to duplicate or copy Vulkan views and samplers.
Therefore, we use reference counting for Vulkan views and samplers when
copying them between descriptor heaps.
2017-09-04 18:33:09 +02:00
Józef Kucia
a780b7a11c
libs/vkd3d: Implement reference counting for Vulkan views and samplers.
2017-09-04 18:33:09 +02:00
Józef Kucia
ea8e5eaaba
libs/vkd3d-shader: Introduce vkd3d_dxbc_compiler_emit_store_dst_swizzled() helper function.
2017-09-04 18:33:09 +02:00
Józef Kucia
3a4a71905e
libs/vkd3d-shader: Implement texel offset for gather4.
2017-09-04 12:46:52 +02:00
Józef Kucia
293ce313ac
libs/vkd3d-shader: Translate gather4 instructions.
2017-09-04 12:46:52 +02:00
Józef Kucia
5bdc928908
libs/vkd3d-shader: Export shader scan function.
...
For UAV counters support in libvkd3d.
2017-09-01 11:27:58 +02:00
Józef Kucia
e11b5fd566
libs/vkd3d-shader: Implement scanning for UAV counters.
2017-09-01 11:27:58 +02:00
Józef Kucia
df0e4bf9cd
libs/vkd3d: Fix default SRVs for 2D array textures.
2017-09-01 11:27:58 +02:00
Józef Kucia
62bd4e6e63
libs/vkd3d: Add support for OffsetInDescriptorsFromTableStart.
2017-08-31 11:21:34 +02:00
Józef Kucia
39a2c0e5f1
libs/vkd3d: Fix width and height for DSV descriptors.
2017-08-31 09:42:50 +02:00
Józef Kucia
7917b84ce9
libs/vkd3d: Fix width and height for RTV descriptors.
2017-08-31 09:42:50 +02:00
Józef Kucia
d8847aa462
libs/vkd3d: Fix texture region copying for miplevels other than 0.
2017-08-31 09:42:50 +02:00
Józef Kucia
0dca9909d9
libs/vkd3d: Copy single layer for array textures in d3d12_command_list_CopyTextureRegion().
2017-08-31 09:42:50 +02:00
Józef Kucia
660ee7b090
libs/vkd3d: Do not use PlaneSlice as layer index.
2017-08-31 09:42:50 +02:00
Józef Kucia
f3862db04d
libs/vkd3d: Use VK_PIPELINE_BIND_POINT_RANGE_SIZE.
2017-08-31 09:29:02 +02:00
Józef Kucia
72b109d380
libs/vkd3d-shader: Factor out vkd3d_spirv_build_image_instruction() function.
2017-08-31 09:29:02 +02:00
Józef Kucia
d42f46cab6
libs/vkd3d: Use d3d12_resource_is_buffer() in d3d12_command_list_ResolveQueryData().
2017-08-31 09:29:02 +02:00
Józef Kucia
904858f4a9
libs/vkd3d: Introduce d3d12_resource_is_texture() helper function.
...
Makes some code easier to read.
2017-08-30 18:31:52 +02:00
Henri Verbeet
f1aa742569
libs/vkd3d: Support D3D12_FEATURE_D3D12_OPTIONS in d3d12_device_CheckFeatureSupport().
2017-08-30 18:11:38 +02:00
Henri Verbeet
6f14c77a7a
libs/vkd3d: Explicitly initialise the queue timestamp bits variables in vkd3d_create_vk_device().
...
Avoids -Wmaybe-uninitialized warnings with gcc 4.9.2. More recent
versions of gcc are able to figure it out by themselves.
2017-08-30 18:11:34 +02:00
Józef Kucia
489abe870c
libs/vkd3d: Implement d3d12_resource_GetHeapProperties().
2017-08-30 17:57:23 +02:00
Sven Hesse
4aa534914b
libs/vkd3d: Implement CopyTextureRegion() for texture to texture.
2017-08-30 16:53:29 +02:00
Józef Kucia
f8ef6630df
libs/vkd3d: Implement d3d12_device_CopyDescriptorsSimple().
2017-08-30 16:41:41 +02:00
Józef Kucia
7c67665032
libs/vkd3d-shader: Implement ld_{raw, structured} for UAVs.
2017-08-30 16:41:41 +02:00
Józef Kucia
87a2fec426
libs/vkd3d-shader: Translate discard instructions.
2017-08-30 16:41:41 +02:00
Józef Kucia
99b72d4db1
libs/vkd3d-shader: Implement sample_l.
2017-08-30 16:41:41 +02:00
Józef Kucia
5b8d1fbdd5
libs/vkd3d-shader: Implement sample_c_lz.
2017-08-30 16:41:41 +02:00
Henri Verbeet
3019a3e8f1
libs/vkd3d: Support both native and Win32 wchar_t.
2017-08-29 16:36:05 +02:00
Sven Hesse
1f51eebe12
libs/vkd3d: Fail in GetTimestampFrequency() for queues without timestamp support.
2017-08-29 15:17:39 +02:00
Sven Hesse
5b6bd40464
libs/vkd3d: Cache the number of valid bits in queue timestamp queries.
2017-08-29 15:16:41 +02:00
Sven Hesse
4bfa651561
libs/vkd3d: Reset the queries before use.
2017-08-29 14:05:49 +02:00
Sven Hesse
531875d924
libs/vkd3d: Add a FIXME for binary occlusion queries.
2017-08-29 13:38:39 +02:00
Sven Hesse
027cc05209
libs/vkd3d: Set VK_QUERY_CONTROL_PRECISE_BIT for occlusion queries.
2017-08-29 13:38:39 +02:00
Józef Kucia
6800dc8e40
libs/vkd3d: Use switch instead of multiple ifs in vk_write_descriptor_set_from_d3d12_desc().
2017-08-29 12:43:04 +02:00
Józef Kucia
7864ac4d67
libs/vkd3d: Merge if statements in vk_write_descriptor_set_from_d3d12_desc().
2017-08-29 12:43:04 +02:00
Józef Kucia
61044c462b
libs/vkd3d: Add FIXME() for ignored max command count.
2017-08-29 10:32:24 +02:00
Henri Verbeet
a624787479
libs/vkd3d: Simplify d3d12_command_list_ResolveQueryData().
2017-08-28 20:38:17 +02:00
Henri Verbeet
040082d965
libs/vkd3d: Simplify d3d12_command_list_EndQuery().
2017-08-28 20:38:05 +02:00
Henri Verbeet
9af2876958
libs/vkd3d: Simplify d3d12_command_list_BeginQuery().
2017-08-28 20:37:51 +02:00
Henri Verbeet
7e5af314f1
libs/vkd3d: Validation should happen in the d3d12/Vulkan validation layers.
...
Unless we have tests that say otherwise.
2017-08-28 20:37:17 +02:00
Henri Verbeet
e228d776be
libs/vkd3d: Fix the d3d12_query_heap_create() argument order.
2017-08-28 20:37:03 +02:00
Henri Verbeet
da54bd0278
libs/vkd3d: Implement indirect dispatches.
2017-08-28 19:29:35 +02:00
Henri Verbeet
b000952e4f
libs/vkd3d: Implement indirect draws.
2017-08-28 19:26:31 +02:00
Henri Verbeet
b4d6aa0dbd
libs/vkd3d: Explicitly handle VK_ERROR_DEVICE_LOST in hresult_from_vk_result().
2017-08-28 19:21:17 +02:00
Józef Kucia
9b8260a246
libs/vkd3d-shader: Translate ld_uav_typed instructions.
2017-08-28 19:10:23 +02:00
Józef Kucia
d107538df8
libs/vkd3d: Implement UAVs for 2D array textures.
2017-08-28 19:10:23 +02:00
Sven Hesse
3001ad5a4f
libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:15:26 +02:00
Sven Hesse
08c5b5ec2e
libs/vkd3d: Implement EndQuery() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:13:41 +02:00
Sven Hesse
5d5587b917
libs/vkd3d: Implement BeginQuery() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:13:01 +02:00
Józef Kucia
8f8eb71ff8
libs/vkd3d: Avoid calling vkGetPhysicalDeviceProperties() in d3d12_command_queue_GetTimestampFrequency().
2017-08-28 13:03:37 +02:00
Józef Kucia
b8c31b771d
libs/vkd3d: Add missing return statement in d3d12_command_list_ResolveQueryData().
2017-08-28 13:03:37 +02:00
Józef Kucia
faf86ebc58
libs/vkd3d: Add missing trace messages.
2017-08-28 13:03:37 +02:00
Józef Kucia
b5c89fa89f
libs/vkd3d-shader: Implement atomic compare exchange instructions.
2017-08-28 11:01:23 +02:00
Józef Kucia
482af89416
libs/vkd3d-shader: Implement remaining binary atomic instructions.
2017-08-28 11:01:23 +02:00
Sven Hesse
f8b7b26372
libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_TIMESTAMP.
2017-08-25 15:16:06 +02:00
Sven Hesse
988e1a96de
libs/vkd3d: Implement EndQuery() for QUERY_TYPE_TIMESTAMP.
2017-08-25 15:16:05 +02:00
Sven Hesse
67587f81e4
libs/vkd3d: Remember the Query Heap creation properties.
2017-08-25 15:16:03 +02:00
Sven Hesse
65f63d14fa
libs/vkd3d: Implement d3d12_command_queue_GetTimestampFrequency().
2017-08-25 15:16:02 +02:00
Józef Kucia
4e300ab1d4
libs/vkd3d-shader: Translate imm_atomic_iadd instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
cb166fbd5a
libs/vkd3d-shader: Translate atomic_umax instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
d464c9033f
libs/vkd3d-shader: Translate atomic_umin instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
a836cc2fe3
libs/vkd3d-shader: Translate atomic_or instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
1c4b9be079
libs/vkd3d-shader: Implement store_{raw,structured} for TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
f7f7c6d889
libs/vkd3d-shader: Implement ld_raw.
2017-08-24 15:13:38 +02:00
Józef Kucia
a94751398b
libs/vkd3d-shader: Add support for atomic instructions on TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
61dd701284
libs/vkd3d-shader: Translate imm_atomic_exch instructions.
2017-08-24 15:13:38 +02:00
Józef Kucia
eba87fa55b
libs/vkd3d-shader: Implement ld_structured for TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
cf5fb3fbc2
libs/vkd3d-shader: Fix swizzle for raw/structured instructions.
2017-08-24 15:13:38 +02:00
Józef Kucia
4bfd0456e5
libs/vkd3d-shader: Refactor raw/structured buffer addressing.
...
In prep for TGSM support.
2017-08-24 15:13:38 +02:00
Józef Kucia
4d0b4f4f71
libs/vkd3d-shader: Add vkd3d_spirv_build_op_composite_extract1() function.
2017-08-24 11:11:16 +02:00
Józef Kucia
cef35c7c76
libs/vkd3d-shader: Translate dcl_tgsm_structured instructions.
2017-08-24 11:11:16 +02:00
Józef Kucia
9ed0feed12
libs/vkd3d-shader: Translate dcl_tgsm_raw instructions.
2017-08-24 11:11:16 +02:00
Józef Kucia
19c1b81a71
libs/vkd3d-shader: Translate sync instructions.
2017-08-24 11:11:16 +02:00
Sven Hesse
3a966cf38e
libs/vkd3d: Mark D3D12_QUERY_HEAP_TYPE_SO_STATISTICS with a FIXME()
2017-08-23 17:31:12 +02:00
Sven Hesse
79cbc900bc
libs/vkd3d: Create Vulkan Query Pools for D3D12 Query Heaps.
2017-08-23 16:18:15 +02:00
Józef Kucia
6c5d8da24d
libs/vkd3d-shader: Store structure stride in symbol table.
2017-08-22 14:53:33 +02:00
Józef Kucia
eb5e7a4412
libs/vkd3d-shader: Implement ld_structured for SRVs.
2017-08-22 12:39:56 +02:00
Józef Kucia
d5697448eb
libs/vkd3d-shader: Translate dcl_resource_structured instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
77e47eddb9
libs/vkd3d-shader: Translate dcl_resource_raw instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
d443e0eb00
libs/vkd3d: Add support for buffer SRVs.
2017-08-22 12:39:56 +02:00
Józef Kucia
6ffe54b9ec
libs/vkd3d-shader: Translate round_z instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
694c20b1da
libs/vkd3d: Implement structured UAVs.
2017-08-21 16:30:33 +02:00
Józef Kucia
0f7c86e2bd
libs/vkd3d-shader: Translate store_structured instructions.
2017-08-21 16:30:33 +02:00