Hans-Kristian Arntzen
0bedb69b02
HLSL: Declare sample mask array with proper module type.
...
GLSL uses int[] and HLSL emits uint[], and to deal properly
with array copies where we lose ability to rewrite arithmetic types,
we need to declare with proper type.
2023-10-23 12:29:25 +02:00
Laura Hermanns
5d7ee6ad11
Fix declaration of gl_SampleMaskIn[1] in HLSL backend.
2023-10-17 09:11:09 -04:00
Try
967ad0bb4d
Fix unroll, when storing to pointer to array
...
#fixed #2196
2023-09-28 23:58:51 +02:00
Hans-Kristian Arntzen
a065c3b48a
Merge branch 'dx12-mesh-flip-y' of https://github.com/Try/SPIRV-Cross into pr-2168
2023-07-03 13:55:02 +02:00
Try
68376504a0
track access to meshlet position.y, via SPIRExpression
2023-07-01 15:49:35 +02:00
Hans-Kristian Arntzen
aafcc207ea
HLSL: Add explicit error for floating point atomics.
2023-06-26 12:41:36 +02:00
Try
85a564202f
meshlet flip-y support
2023-06-18 16:06:31 +02:00
Laura Hermanns
bcb6243798
HLSL: Add support to preserve (RW)StructuredBuffer resources.
2023-05-12 14:41:00 -04:00
Laura Hermanns
b19aa51e32
HLSL: Don't restrict SV_RenderTargetArrayIndex to GS and MS.
2023-04-25 09:33:40 -04:00
手机用户Xh2vb13n
d1ac6524d3
HLSL: support Texture2D::GatherCmp function
...
refer to https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-texture2d-gathercmp
2023-04-10 16:55:38 +08:00
Hans-Kristian Arntzen
09e60d74f6
Merge pull request #2124 from Try/hlsl-task-shader
...
HLSL: Add task(amplification) shader support
2023-03-22 12:36:47 +01:00
Try
cb45e4be6f
cleanup
2023-03-21 21:11:07 +01:00
Try
4a5d21bf1c
virtual emit_mesh_tasks
2023-03-21 21:08:59 +01:00
Try
7ac2c84ff3
code-style
2023-03-18 19:50:28 +01:00
Try
dd8839c6f9
task shader initial
2023-03-18 17:20:16 +01:00
skkkksdkfak
f086cd021e
Fix argument for CommitProceduralPrimitiveHit.
2023-02-24 11:00:41 +01:00
Ravbug
36691f902c
Check for SM < 6.7
2023-02-02 12:42:17 -05:00
Hans-Kristian Arntzen
86a985f28c
Merge pull request #2093 from rdb/emulate-unsupported-hyperbolic-funcs
...
GLSL/HLSL: Add emulated fallbacks for hyperbolic math functions
2023-01-27 12:15:28 +01:00
rdb
53974b4fae
GLSL/HLSL: Add emulated fallbacks for sinh/cosh/tanh/asinh/acosh/atanh
...
The inverse hyperbolic functions are not supported in HLSL, and none of them are supported in legacy GLSL.
2023-01-26 19:40:42 +01:00
rdb
d10044b23e
GLSL: Add support for modf, isnan and isinf in legacy GLSL
2023-01-26 19:14:25 +01:00
rdb
26da9c58a6
HLSL: Support PointSize output in vertex shader in SM 3.0
2023-01-17 23:42:04 +01:00
rdb
4ba13e0c1a
GLSL/HLSL: Add legacy handling for int vertex attributes
2023-01-14 18:57:24 +01:00
Chip Davis
5547b25afe
Interleave undef values with constants and types.
...
Undef values may be of struct type and may be used in constants.
Therefore, they must be interleaved with constants and types.
Fixes the rest of the Vulkan CTS test
`dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_spec_constant_composite`.
(Please excuse the churn in the reference output; it's an inevitable
result of this change.)
2022-11-20 02:08:37 -08:00
Hans-Kristian Arntzen
b606e4f752
HLSL: Fix test for non-block per-primitive IO.
...
Force gl_in_out path for HLSL as well when mesh shaders are used.
2022-11-02 13:41:32 +01:00
Hans-Kristian Arntzen
ebf779dcfb
HLSL: Do not support ClipCull size > 4 in mesh shaders.
...
The array mechanism breaks DXC which needs to observe that all
components have been written.
Uninitialized outputs will be undefined. Resort to simple vector
instead.
2022-11-02 13:34:11 +01:00
Hans-Kristian Arntzen
3a066cd733
HLSL: Handle case where PerVertex block is not used.
2022-11-02 13:07:32 +01:00
Hans-Kristian Arntzen
e418266d25
HLSL: Some cleanups and fixes in analyze_meshlet_writes.
2022-11-02 12:56:04 +01:00
Hans-Kristian Arntzen
892f65b3a6
HLSL: Fix some warnings from review.
2022-11-02 12:15:10 +01:00
Hans-Kristian Arntzen
a4d5c0c4a5
HLSL: Fix-up some style issues from review.
2022-11-02 12:15:10 +01:00
Try
80146a20da
HLSL: Implement VK_EXT_mesh_shader
2022-11-02 11:48:58 +01:00
Hans-Kristian Arntzen
4de9d6c2b6
MSL: Handle implicit integer promotion rules.
...
MSL inherits the behavior of C where arithmetic on small types are
implicitly converted to int. SPIR-V does not have this behavior, so make
sure that arithmetic results are handled correctly.
2022-10-31 13:33:46 +01:00
Hans-Kristian Arntzen
b5386e3ea9
HLSL: Improve support for VertexInfo aux struct.
...
Add concept of explicit bindings for aux structs and allows query if
these aux structs are required.
2022-10-03 13:31:27 +02:00
Hans-Kristian Arntzen
095e9e5cee
Merge pull request #1982 from RandomShaper/hlsl_subgroup_scan
...
HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
2022-07-22 14:44:10 +02:00
Pedro J. Estébanez
1fe470b199
HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
2022-07-22 13:39:37 +02:00
Hans-Kristian Arntzen
06ca9accd7
HLSL: Add option to emit entry point name 1:1 instead of main().
...
MSL backend supports emitting custom name, and there's no reason for
HLSL to not support that as well, but we have to make it an option to
not break existing users.
2022-07-22 12:04:33 +02:00
Pedro J. Estébanez
d8c5e39436
HLSL: Implement bit casts between Half and UShort.
2022-06-15 19:19:04 +02:00
iwubcode
a6976d596a
HLSL: fix BuiltInLayer to emit semantic 'SV_RenderTargetArrayIndex' instead of 'SV_RenderTargetIndex'
2022-05-21 00:52:23 -05:00
Laura Hermanns
65431446f4
HLSL: Add missing BuiltInLayer to HLSL backend.
2022-04-28 16:44:34 -04:00
Hans-Kristian Arntzen
10a7631d50
HLSL: Add more comprehensible reserved identifier list.
2022-04-28 14:56:43 +02:00
Pedro J. Estébanez
2ea1c9b642
HLSL: Implement ViewIndex.
2022-04-15 10:42:52 +02:00
skksdkfak
54c00b69a4
Translate gl_PrimitiveID to SV_PrimitiveID.
2022-04-07 12:56:53 +03:00
Hans-Kristian Arntzen
c95338e03e
Merge branch 'ray_query' of https://github.com/k-payl/SPIRV-Cross into pr-1859
2022-03-22 12:29:49 +01:00
Konstantin Pail
251361bd6f
VK_KHR_ray_query implementation
2022-03-15 21:54:29 +03:00
Hans-Kristian Arntzen
4ab5bbb4e5
Fixup names of anonymous inner structs.
...
Just like we try to fixup struct names for block types, inner structs
can be "anonymous" structs. HLSL codegen from DXC tends to emit this,
and emitting dummy struct names tends to break GL linkage on some
drivers.
2022-03-10 15:45:38 +01:00
Pedro J. Estébanez
c4f9e4fde9
HLSL: Fix Helper Invocation wrongly allowed in compute.
2022-03-04 13:10:41 +01:00
Hans-Kristian Arntzen
476b6541fa
Remove forwardable bit in SPIRVariable.
...
Was never really used for anything. It's always true.
2022-03-04 11:05:21 +01:00
Hans-Kristian Arntzen
005c14ad6a
HLSL: Implement HelperInvocationEXT.
...
It is volatile by nature and must not be forwarded.
2022-03-04 10:54:31 +01:00
Pedro J. Estébanez
278a4c80ed
HLSL: Add support for gl_HelperInvocation
2022-03-04 09:25:09 +01:00
Hans-Kristian Arntzen
31be74a853
Add relax_nan_checks options.
...
Makes codegen from typical D3D emulation SPIR-V more readable.
Also makes cross compilation with NotEqual more sensible.
It's very rare to actually need the strict NaN-checks in practice.
Also, glslang now emits UnordNotEqual by default it seems, so give up
trying to assume OrdNotEqual. Harmonize for UnordNotEqual as the sane
default.
2022-03-03 14:50:56 +01:00
Daniel Thornburgh
44c3333a1c
Qualify std::move.
...
Clang added -Wunqualified-std-cast-call in
https://reviews.llvm.org/D119670 , which warns on unqualified std::move
and std::forward calls. This change qualifies these calls to allow the
project to build on HEAD Clang -Werror.
2022-03-02 23:17:58 +00:00