Commit Graph

663 Commits

Author SHA1 Message Date
Henri Verbeet
c64921e79b vkd3d-common: Get rid of InterlockedIncrement(). 2024-02-06 23:07:36 +01:00
Jacek Caban
2ae9f18a3a vkd3d: Use uint64_t for the size in vkd3d_gpu_va_allocator_allocate.
Avoids value truncation in 32-bit builds.
2024-02-01 22:25:20 +01:00
Henri Verbeet
8c6f5b847b vkd3d-utils: Implement D3DDisassemble().
Very loosely based on Wine's d3dcompiler_43.
2024-01-29 22:33:44 +01:00
Giovanni Mascellani
5ec1825eb3 include/vkd3d-shader: Generate swizzles without a function call.
So they can be used when a constant expression is expected, for instance
on case labels.
2024-01-29 22:33:31 +01:00
Conor McCarthy
6446b6ea21 vkd3d-shader: Introduce VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64. 2024-01-24 22:38:09 +01:00
Zebediah Figura
0f46e7bbad tests: Test signature reflection via D3DReflect().
Ported from Wine.
2024-01-24 22:37:53 +01:00
Zebediah Figura
53bd1f5419 vkd3d-utils: Add D3DReflect(). 2024-01-24 22:37:53 +01:00
Zebediah Figura
e73ba2a4c3 include: Add vkd3d_d3d12shader.idl. 2024-01-24 22:37:53 +01:00
Giovanni Mascellani
6ac525d6c3 vkd3d-shader/spirv: Use capability ShaderViewportIndexLayerEXT for decoration Layer.
Capability Geometry allows to use the Layer builtin in geometry and pixel
shaders. For vertex and domain shaders ShaderLayer should be used, but it's only
available starting from SPIR-V 1.5. ShaderViewportIndexLayerEXT can be used
instead with extension SPV_EXT_shader_viewport_index_layer.
2024-01-22 22:19:09 +01:00
Henri Verbeet
9228e13155 vkd3d-common: Introduce vkd3d_atomic_decrement_u32(). 2024-01-18 23:16:19 +01:00
Henri Verbeet
03fbf4a3dc vkd3d-common: Introduce vkd3d_atomic_increment_u32(). 2024-01-18 23:16:19 +01:00
Henri Verbeet
cd9610bbe0 include: Introduce a debug helper for HRESULTs. 2024-01-17 22:29:39 +01:00
Henri Verbeet
71decc927f vkd3d-common: Introduce vkd3d_atomic_increment_u64(). 2024-01-17 22:29:29 +01:00
Henri Verbeet
4db7b40ca8 vkd3d-common: Get rid of InterlockedAdd().
This was once used by libvkd3d's fence worker thread, but currently this is
unused.
2024-01-15 19:57:59 +01:00
Henri Verbeet
9dd5b2840f vkd3d-shader: Recognise DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS in shader_validate_descriptor_range1(). 2024-01-11 23:04:54 +01:00
Nikolay Sivov
9494b72224 vkd3d-shader: Add separate binary target type for effects.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-01-11 23:04:48 +01:00
Henri Verbeet
4ec7f360d9 vkd3d: Add D3D_FEATURE_LEVEL_1_0_CORE as a valid feature level. 2024-01-03 22:38:10 +01:00
Henri Verbeet
6abcc27c97 vkd3d: Add D3D_FEATURE_LEVEL_12_2 as a valid feature level. 2024-01-03 22:38:10 +01:00
Conor McCarthy
13459a55f1 vkd3d-shader/spirv: Introduce a UINT64 component type. 2024-01-02 23:03:04 +01:00
Conor McCarthy
cdb9eecfd1 vkd3d-shader/spirv: Introduce a compiler feature flag for int64 capability. 2023-12-12 22:50:53 +01:00
Henri Verbeet
0c33f82f72 Release 1.10. 2023-12-06 15:31:21 +01:00
Henri Verbeet
803dfc1246 vkd3d-shader: Update the vkd3d_shader_scan() documentation.
Scanning d3dbc sources is supported now, and
vkd3d_shader_scan_combined_resource_sampler_info is supported as a chained
structure.
2023-12-04 22:23:14 +01:00
Henri Verbeet
ee1c6bd488 vkd3d-shader: Add a VKD3D_FORCE_32_BIT_ENUM element to enum vkd3d_shader_compile_option_fragment_coordinate_origin. 2023-12-04 22:23:04 +01:00
Biswapriyo Nath
c64909988f include: Add ID3D12InfoQueue1 definition in vkd3d_d3d12sdklayers.idl. 2023-11-28 21:49:11 +01:00
Alistair Leslie-Hughes
5c134d44d6 include: D3D12_RT_FORMAT_ARRAY remove typedef to make header compatible with windows.
windows d3d12.idl doesn't have this as a typedef.
2023-11-28 00:09:20 +01:00
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