Commit Graph

638 Commits

Author SHA1 Message Date
Henri Verbeet
01dad41862 vkd3d-shader/ir: Skip recording combined resource/sampler information for dynamically indexed descriptor arrays.
And output a warning instead.
2023-11-21 22:41:57 +01:00
Jacek Caban
616bf93931 include: Use GCC-style attributes and builtins on Clang MSVC target. 2023-11-20 22:07:54 +01:00
Conor McCarthy
529c0f46b0 include: Add a D3D12_RT_FORMAT_ARRAY typedef.
For consistency with how other D3D12_* structs are declared.
2023-11-15 21:48:41 +01:00
Henri Verbeet
9de793f180 vkd3d-shader: Implement scanning combined resource/sampler information. 2023-11-13 23:19:23 +01:00
Henri Verbeet
e7eec3e023 vkd3d-shader/spirv: Allow the origin of fragment coordinates to be specified.
We typically want to use lower-left in OpenGL environments when rendering to
FBOs.
2023-11-09 21:14:12 +01:00
Giovanni Mascellani
bae6079047 include: Move D3D_BLOB_PART to a new header file.
According to a clang diagnostic, redefining a typedef is C11, and
we want to stick with C99.
2023-11-06 23:08:42 +01:00
Henri Verbeet
f75bdd6e21 vkd3d-utils: Implement D3DStripShader(). 2023-10-19 23:07:50 +02:00
Nikolay Sivov
e242b46922 vkd3d-shader/tpf: Convert some of the semantic names to system values names when in compatibility mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-19 23:03:23 +02:00
Henri Verbeet
9ce98f9be5 vkd3d-utils: Implement D3DGetOutputSignatureBlob(). 2023-10-18 20:58:24 +02:00
Henri Verbeet
9d9f762ede vkd3d-utils: Implement D3DGetInputSignatureBlob(). 2023-10-18 20:58:24 +02:00
Henri Verbeet
be8efb9c9c vkd3d-utils: Implement D3DGetInputAndOutputSignatureBlob(). 2023-10-18 20:58:24 +02:00
Henri Verbeet
247eaa6b7d vkd3d-utils: Implement D3DGetDebugInfo(). 2023-10-18 20:58:24 +02:00
Henri Verbeet
b63c853688 vkd3d-utils: Implement D3DGetBlobPart().
This was largely adapted from Wine's d3dcompiler_43, with some style
adjustments.
2023-10-18 20:58:22 +02:00
Zebediah Figura
72e8b6e0dc include: Fix some confusingly structured documentation.
Fixes: 7a4ae434df.
2023-10-10 22:11:37 +02:00
Zebediah Figura
7a4ae434df include: Define an API for mapping sm1 samplers to the target environment. 2023-10-09 21:58:38 +02:00
Martin Storsjö
e44a1927e5 include: Add an #include of d3d12sdklayers.h in vkd3d_d3d12.idl.
This matches what is done in the upstream headers; end users
including d3d12.h don't need to explicitly include d3d12sdklayers.h.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-27 22:34:34 +02:00
Henri Verbeet
90d4529f27 Release 1.9. 2023-09-21 19:16:32 +02:00
Zebediah Figura
8c11270940 vkd3d-shader: Add definitions for more fragment output system values. 2023-09-21 19:16:29 +02:00
Zebediah Figura
fd120d8f2d vkd3d-shader: Rename vkd3d_shader_next_stage_info to vkd3d_shader_varying_map_info.
It was originally intended that this structure could hold other information
about the next stage which compilation might depend on. For example, compilation
to GLSL needs to know the type of the next shader in some circumstances.

That was never actualized, and since the API is fixed at this point for 1.9, it
makes the most sense to rename the structure to match its actual scope.

The documentation was written and arranged to imply that the structure would
hold other information about the next shader than the varying map; this is
changed accordingly as well.
2023-09-21 19:16:27 +02:00
Henri Verbeet
054ae10693 vkd3d-shader: Slightly tweak the documentation for VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER. 2023-09-19 21:30:40 +02:00
Henri Verbeet
0f2dd5f9be vkd3d-shader: Add a \since 1.9 for VKD3D_SHADER_SV_TARGET. 2023-09-19 21:30:40 +02:00
Henri Verbeet
74517de783 include: Add a corresponding function pointer type for vkd3d_shader_build_varying_map(). 2023-09-19 21:30:37 +02:00
Martin Storsjö
e597b0d80f include: Add UUIDs for use with D3D12EnableExperimentalFeatures.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-18 21:04:59 +02:00
Martin Storsjö
b484a9e1f6 include: Add the ID3D12GraphicsCommandList{5,6,7} interfaces.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-18 21:04:59 +02:00
Martin Storsjö
5d13a90e37 include: Add DirectX 12 Agility SDK definitions.
This ports parts of commit 83625459c8227b0bd7b86c18946a35d3a806c80d
from wine.git into vkd3d.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-18 21:04:56 +02:00
Henri Verbeet
da89da2bf3 vkd3d-shader: Hide support for DXIL sources.
Unfortunately this is not sufficiently ready to release.
2023-09-18 21:04:19 +02:00
Martin Storsjö
06399d128a include: Add some misc D3D12 structs/enums/macros.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
b67279394b include: Add some D3D12 raytracing specific structs.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
55c6e17fca include: Add the D3D12_BARRIER_GROUP struct.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
f1c19e34d8 include: Add the ID3D12Tools interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
e9e9fdbd5e include: Add the ID3D12VirtualizationGuestDevice interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
602d2f90d7 include: Add the ID3D12Device10 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
891c6d2743 include: Add the ID3D12Device9 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
77819d8d04 include: Add the ID3D12ShaderCacheSession interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
275644d34a include: Add the ID3D12GraphicsCommandList4 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
f31efc1afc include: Add the ID3D12MetaCommand interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
fccf9f7ac5 include: Add the ID3D12Heap1 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
88b3776436 include: Add the ID3D12Resource{1,2} interfaces.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
cca052da29 include: Add the ID3D12Device8 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:58 +02:00
Martin Storsjö
dd93b31e48 include: Add the structs D3D12_FEATURE_DATA_D3D12_OPTIONS{6,7}.
D3D12MemAlloc.cpp uses these if ID3D12Device8 is available.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
442a8347bf include: Add the ID3D12Device7 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
a7bb5b6ba3 include: Add the ID3D12ProtectedResourceSession1 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
aad1c3e35c include: Add the ID3D12Device6 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
edaf7fbd88 include: Add the ID3D12DeviceRemovedExtendedData{,1,2} interfaces.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
4f4afab3d5 include: Add the ID3D12DeviceRemovedExtendedDataSettings{,1} interfaces.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
1302b897ed include: Add the ID3D12Device5 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
16daf0423d include: Add the ID3D12StateObjectProperties interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
8e3f863341 include: Add the ID3D12StateObject interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
02fc1ba9c3 include: Add the ID3D12LifetimeTracker interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
8076c9a591 include: Add the ID3D12SwapChainAssistant interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
06388a2c9b include: Add the ID3D12LifetimeOwner interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:54 +02:00
Martin Storsjö
b005390a36 include: Add the ID3D12Device4 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:53 +02:00
Martin Storsjö
fffdb76b33 include: Add the ID3D12PipelineLibrary{,1} interfaces.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-13 23:10:53 +02:00
Martin Storsjö
2fb0c2d187 include: Fill in missing enum values in vkd3d_d3d12.idl.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:21 +02:00
Martin Storsjö
8e6b08d685 include: Add some more struct/enum definitions to vkd3d_d3d12.idl.
This is enough for compiling QtBase's Direct3D 12 backend,
if this is imported into mingw-w64.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:19 +02:00
Martin Storsjö
1b45052c92 include: Add missing miscellaneous D3D12 constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
61c402405a include: Add missing D3D12 vertex shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
44a669a644 include: Add missing D3D12 minimum resource limit constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
7efba29853 include: Add missing D3D12 raytracing constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
b32b060518 include: Add missing D3D12 pixel shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
ef8dd51c7a include: Add missing D3D12 input assembler constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
f8c848f563 include: Add missing D3D12 hull shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
1d74dc7903 include: Add missing D3D12 geometry shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
af4403147a include: Add missing D3D12 domain shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
cf61d217a9 include: Add missing D3D12 compute shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
71dd917091 include: Add missing D3D12 common shader constants.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:15 +02:00
Martin Storsjö
8febea5a9c include: Sort vkd3d_d3d12.idl constants alphabetically.
This makes it easier to consistently add more constants.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:13 +02:00
Martin Storsjö
dff79973e0 include: Fix the type of D3D12_VIEWPORT_BOUNDS_MIN.
As this is a negative constant, it shouldn't have an unsigned type.

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-07 19:15:10 +02:00
Martin Storsjö
fdaacb158e include: Add the D3D_PRIMITIVE enum and the D3D12_PRIMITIVE typedef.
Signed-off-by: Martin Storsjö <martin@martin.st>
2023-09-04 20:25:47 +02:00
Conor McCarthy
bf49a1a95b vkd3d-shader/dxil: Declare shader outputs. 2023-08-30 22:48:50 +02:00
Zebediah Figura
622311da8e vkd3d-shader: Add a flag marking raw buffers to struct vkd3d_shader_descriptor_info. 2023-08-23 22:45:04 +02:00
Conor McCarthy
f3baf55d97 vkd3d: Implement ID3D12Device1 with stubs. 2023-08-23 22:44:58 +02:00
Zebediah Figura
f649db23a5 vkd3d-shader: Introduce a function to build a varying map between sm1 stages. 2023-08-03 21:20:44 +09:00
Zebediah Figura
11475ef62a vkd3d-shader: Implement remapping shader output registers to match the next shader's semantics. 2023-08-03 21:20:42 +09:00
Conor McCarthy
c2e09e4c4f vkd3d: Implement ID3D12Fence1. 2023-08-02 20:18:37 +09:00
Conor McCarthy
0d1bc77b2a vkd3d: Implement ID3D12GraphicsCommandList3 with a stub. 2023-07-31 21:08:02 +09:00
Conor McCarthy
4433dacb4f vkd3d: Implement ID3D12Device::GetResourceTiling() for textures. 2023-07-31 21:07:58 +09:00
Conor McCarthy
71a9feac8e vkd3d: Implement ID3D12Device::GetResourceTiling() for buffers. 2023-07-31 21:07:57 +09:00
Nikolay Sivov
bd3d4a6c06 vkd3d-shader: Add compiler option to specify matrix majority.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-07-24 22:41:09 +02:00
Zebediah Figura
d077562f79 vkd3d-shader/d3dbc: Scan descriptors for constant register sets. 2023-07-17 22:56:39 +02:00
Zebediah Figura
55c5129ad9 include: Define an API for d3dbc constants. 2023-07-17 22:56:39 +02:00
Conor McCarthy
571d807dd8 vkd3d-shader/dxil: Read the type table. 2023-07-11 22:43:48 +02:00
Giovanni Mascellani
b2a1f6b5e4 include: Document vkd3d_acquire_vk_queue() and vkd3d_release_vk_queue(). 2023-07-06 20:09:53 +02:00
Alistair Leslie-Hughes
d5a0b3afc4 include: Avoid including unnecessary Windows headers.
We only require a few types and declarations.
2023-06-28 21:41:14 +02:00
Conor McCarthy
d3e6a3a78f include: Introduce a function to detect the DXBC source type. 2023-06-28 21:40:36 +02:00
Conor McCarthy
6775f7ba66 vkd3d-shader/dxil: Read and validate DXIL bitcode unabbreviated blocks. 2023-06-28 21:40:34 +02:00
Conor McCarthy
e98e6c9b53 vkd3d: Add missing const attributes to ID3D12CommandQueue::UpdateTileMappings() parameters. 2023-06-27 22:33:58 +02:00
Zebediah Figura
7e1fcdca89 vkd3d-shader: Synthesize signatures for d3dbc shaders. 2023-06-27 22:33:41 +02:00
Zebediah Figura
20190a1388 vkd3d-shader: Introduce an API to retrieve all signatures from DXBC shaders. 2023-06-27 22:33:41 +02:00
Zebediah Figura
7b9eb8d189 vkd3d-shader: Introduce documented semantics for the target type and other data passed to vkd3d_shader_scan().
Passing VKD3D_SHADER_TARGET_NONE was actually already allowed.
2023-06-27 22:33:39 +02:00
Henri Verbeet
771e442af1 Release 1.8. 2023-06-22 22:00:20 +02:00
Conor McCarthy
e63201a7a3 vkd3d: Delay writing Vulkan descriptors until submitted to a queue.
Eliminates vk_sets_mutex. Performance on average may be lower until
the descriptor mutexes are replaced and Vulkan writes are buffered
to reduce thunk calls.
2023-04-25 22:20:09 +02:00
Zebediah Figura
6783524613 vkd3d-common: Make some global string variables const. 2023-04-06 17:52:08 +02:00
Zebediah Figura
dfa4bfdd03 include: Make test context information nestable.
Based on Wine.
2023-04-04 21:59:58 +02:00
Zebediah Figura
1bf5050d3d tests: Factor out vkd3d_test_printf(). 2023-04-04 21:59:58 +02:00
Henri Verbeet
57d92a15cf Release 1.7. 2023-03-24 11:22:28 +01:00
Henri Verbeet
54b0165e32 vkd3d-shader: VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE was introduced in vkd3d 1.7. 2023-03-20 21:28:13 +01:00
Zebediah Figura
98624f2e8f include: Document that vkd3d_shader_signature may contain pointers into the input shader blob. 2023-03-08 20:14:49 +01:00
Giovanni Mascellani
6ccde9e82c vkd3d-shader: Make documentation for "messages" parameters self contained.
Otherwise it's not clear which clauses in vkd3d_shader_compile() really
apply to other functions. For example, many of the functions currently
refering to vkd3d_shader_compile() don't even take a vkd3d_shader_compile_info
parameter.
2023-02-28 22:07:12 +01:00
Henri Verbeet
b1e13d6e33 vkd3d-shader/dxbc: Introduce API for serialising DXBC blobs. 2023-02-23 21:47:27 +01:00