Boris Brezillon
23bd889541
dzn: Properly support static blend constants
...
The current code was assuming blend constants to be passed dynamically,
which is wrong. Let's handle both the dynamic and static cases.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15608 >
2022-03-31 12:21:35 +00:00
Boris Brezillon
f16a7aa9d6
dzn: Fix alpha blend factor translation
...
When VK_BLEND_FACTOR_xxx_COLOR is passed to an alpha equation what we
really want is the alpha component replicated on the RGBA channels,
which has dedicated enums in D3D12. Let's make sure we use the right
definition depending on the equation we're translating.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15608 >
2022-03-31 12:21:35 +00:00
Boris Brezillon
329f16fffc
dzn: Make a bunch of functions private
...
Looks like some functions that should have been marked static when
transitioning from C++ methods to plain C where forgotten. Let's fix that
now.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15607 >
2022-03-31 09:46:36 +00:00
Boris Brezillon
4194c89ed8
dzn: Remove the dzn_cmd_exec_functions file
...
That's a leftover from a previous version of the secondary command
buffer implementation.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15607 >
2022-03-31 09:46:36 +00:00
Boris Brezillon
b402cff591
dzn: Add Missing return type to dzn_translate_sampler_filter()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15607 >
2022-03-31 09:46:36 +00:00
Yonggang Luo
55ca1c8db3
vulkan/microsoft: Remove override_options: ['cpp_std=c++latest'] option for visual studio
...
The project no longer uses c++20 features
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15595 >
2022-03-31 09:16:27 +00:00
Erik Faye-Lund
a012b21964
microsoft: Initial vulkan-on-12 driver
...
This is Dozen, the Vulkan on DirectX 12 driver. Not to be confused with
DirectEggs.
This is an early prototype, and not meant to be upstreamed as-is.
Co-Authored-by: Boris Brezillon <boris.brezillon@collabora.com >
Co-Authored-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Co-Authored-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Co-Authored-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14766 >
2022-03-25 16:21:45 +00:00
Enrico Galli
6635d011cb
microsoft/spirv_to_dxil: Add missing ralloc_free
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14766 >
2022-03-25 16:21:45 +00:00
Boris Brezillon
04d812b2d0
Revert "ci: Disable windows-vs2019"
...
This reverts commit 04b80489d5 .
Acked-by: Daniel Stone <daniels@collabora.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15518 >
2022-03-24 09:11:13 +00:00
Erik Faye-Lund
f7e92c8869
microsoft/compiler: remove phi-value limit
...
There's no guarantee that we don't have more than 128 PHI values either,
so let's stop asuming so.
We do this by changing dxil_phi_set_incoming to dxil_phi_add_incoming,
which lets us add more incoming phi-values to the current one instead of
setting a new set of them.
This also lets us reduce these stack-arrays a bit, down to something
much more reasonable.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15519 >
2022-03-23 16:33:21 +00:00
Erik Faye-Lund
d752c4bc7c
microsoft/compiler: ralloc incoming phi-values
...
Reserving 127 incoming values for every phi instruction is neither
robust nor memory efficient.
Let's ralloc this array instead when filling it. This way, we only pay
for what we use here.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15519 >
2022-03-23 16:33:21 +00:00
Alyssa Rosenzweig
04b80489d5
ci: Disable windows-vs2019
...
Currently down.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15148 >
2022-02-23 15:12:41 +00:00
Ian Romanick
a01b262990
nir: Add missing dependency on nir_opcodes.py
...
Commit 38800b38 changed nir_opcodes.py, but that doesn't seem to have
triggered nir_opt_algebraic.py. The change in 75ef5991 depends on
opt_algebraic lowering 16-bit versions of slt, but if opt_algebraic is
not rebuilt, this may not happen. This resulted in some people seeing
assertion failures in, for example,
dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_3.step,
due to the backend seeing nir_op_slt that it didn't know how to handle.
v2: Add nir_opcodes.py to nir_algebraic_py so that all the per-driver
algebraic passes pick up the dependency too. Rename it to
nir_algebraic_depends. Suggested by Emma.
Closes : #6047
Fixes: d1992255bb ("meson: Add build Intel "anv" vulkan driver")
Reviewed-by: Emma Anholt <emma@anholt.net >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15050 >
2022-02-17 22:57:33 +00:00
Jesse Natalie
31e2c3f550
microsoft/compiler: Fill interpolation for sysval inputs to non-vertex shader
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5483
Reviewed-by: Michael Tang <tangm@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14984 >
2022-02-11 00:19:17 +00:00
Daniel Stone
7a0ace7d4e
Revert "ci: Disable Windows for now"
...
This reverts commit be385ab5bc .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14975 >
2022-02-10 16:44:16 +00:00
Daniel Stone
be385ab5bc
ci: Disable Windows for now
...
Docker on Windows is broken for some reason, so just disable it for now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14970 >
2022-02-10 12:51:06 +00:00
Jesse Natalie
918647000f
microsoft/compiler: Set flag for VP/RT array index from VS/DS
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14881 >
2022-02-04 20:49:23 +00:00
Jesse Natalie
5954c8e524
microsoft/compiler: Handle SV_ViewportArrayIndex
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14881 >
2022-02-04 20:49:23 +00:00
Jesse Natalie
0044e80b82
microsoft/compiler: Handle structs in I/O signatures
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
eb0cefae6d
microsoft/compiler: Map I/O base locations to input IDs
...
When dealing with a vertex input that takes multiple rows, the value of
nir_intrinsic_base points to a driver-location-based index, but we need
to emit a location-based index (or more specifically, an index that
increments once per input, not once per register). Add a mapping to
the module of base -> ID.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
efe5c2d6f3
microsoft/compiler: Process signatures before the shader code
...
This lets us set up some metadata based on I/O vars without having
to do multiple passes over them.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
c154d403d3
microsoft/compiler: Handle I/O vars larger than a vec4
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
cdc49fb605
microsoft/compiler: Lower 64bit I/O to 32 and then run lower_pack
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
b24cfd0d40
microsoft/compiler: Handle b2f64
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
4d17393ba0
microsoft/compiler: Set dx11_1_double_extensions flag for dfma/ddiv
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
4c8935d325
microsoft/compiler: Fix dxil_nir_lower_double_math_instr pass for vectors
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
c8bd830dfb
microsoft/compiler: Fix make_double and split_double to respect swizzles
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
92191349e9
microsoft/compiler: Fix splitdouble struct name
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
dde3b04d44
microsoft/compiler: It's possible to have doubles without int64
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
3b9483e89d
microsoft/compiler: Add never-supported double ops to lower_doubles bitmask
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
ce6dbbabf9
microsoft/compiler: Only treat tess level location as special if it's a patch constant
...
Fixes: a550c059 ("microsoft/compiler: For load_input from DS, use loadPatchConstant")
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
0c711dc823
microsoft/compiler: Only prep phis for the current function
...
Fixes: 41af9620 ("microsoft/compiler: Emit all NIR functions into the DXIL module")
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
87d22c2465
microsoft/compiler: Lower mul_2x32_64
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837 >
2022-02-04 00:07:53 +00:00
Jesse Natalie
36add3d002
microsoft/compiler: Support multiple GS output streams
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14787 >
2022-01-31 13:34:27 -08:00
Jesse Natalie
895cdbd6f0
microsoft/compiler: Correctly support I/O on variables with location_frac
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14787 >
2022-01-31 13:34:27 -08:00
Jesse Natalie
1d43e75228
d3d12: Add UAV barriers for UAVs that are being used by compute transforms
...
If an indirect arg buffer is being produced by a compute shader, then when
we go to consume it as an SSBO in a compute transform pass, we need to insert
a UAV barrier to prevent the two dispatches from overlapping. For app dispatches,
this is the app's responsibility via explicit barrier APIs, and if they don't,
then they're allowed to overlap.
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14787 >
2022-01-31 13:13:33 -08:00
Jesse Natalie
2d4ee41df0
microsoft/compiler: Fix UAV resource ID counting for static indexed handles
...
Skip resource space 2 after computing the ID it would've used.
Fixes: e5f353f2 ("microsoft/compiler: Emit statically-indexed resource handles and scratch later")
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14787 >
2022-01-31 13:13:12 -08:00
Boris Brezillon
11e2c4b502
microsoft/spirv_to_dxil: Define idep_libspirv_to_dxil
...
So we can re-use it when we need to define a dependency on spirv_to_dxil.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
ef47a6800b
microsoft/spirv_to_dxil: Make sure the SampleMask is a uint
...
DXIL doesn't like when SV_Coverage (AKA SampleMask in DXIL) is a
signed integer. Fix the type while we're in the NIR domain.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
7e56d8c393
microsoft/spirv_to_dxil: Lower atomics to their dxil variants
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
c2eeba04c3
microsoft/spirv_to_dxil: Discard PSIZ accesses
...
D3D12 doesn't support gl_PointSize, so let's consider PointSize is
always 1.0 and discard any PointSize access.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Louis-Francis Ratté-Boulianne
5cd2bf837d
microsoft/spirv_to_dxil: Allow passing a vulkan -> d3d12 binding mapping table
...
Vulkan bindings take only one slot per variable, but d3d12 ones take one
slot per entry when the variable is an array. This forces us to pass
an explicit vulkan -> d3d12 mapping table when dealing with vulkan
shaders.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Louis-Francis Ratté-Boulianne
de1e941c59
microsoft/spirv_to_dxil: Lower push constant loads to UBO loads
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Louis-Francis Ratté-Boulianne
d11a417ded
microsoft/spirv_to_dxil: lower input attachments
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Louis-Francis Ratté-Boulianne
e65303c6e6
microsoft/spirv_to_dxil: check for variables r/w access
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
39592f8ad4
microsoft/spirv_to_dxil: Support [un]conditional YZ-flip
...
The unconditional Y-flip is needed for Vulkan 1.0 since D3D12 and
Vulkan coordinate systems differ. Conditional YZ-flip is needed if
we want to support negative viewport height/depth.
Prepare spirv_to_dxil() to support that, and while at it, prepare
things for multi-viewport: the Y/Z flips are per-viewport and encoded
in a 32bit bitmask, with the upper 16bits reserved for Z flips, and the
lower 16bits reserved for Y flips.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
225867684a
microsoft/spirv_to_dxil: Allow dumping NIR
...
Dumping NIR shaders is a useful debug feature. Let's tweak the
spirv_to_nir() helper so we can pass debugging options and
add one to allow dumping NIR.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
27790c4a7a
microsoft/spirv_to_dxil: Remove dead variables after the struct split pass
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14765 >
2022-01-31 20:21:25 +00:00
Boris Brezillon
a4c8508c37
microsoft/compiler: textureLoad() doesn't take a LOD on MS textures
...
Make sure the LOD is zero in that case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13993 >
2022-01-31 16:37:47 +00:00
Boris Brezillon
951fd35012
microsoft/compiler: Skip images in redirect_texture_derefs()
...
The input attachment lowering pass turns input attachment loads into
texel fetch operation, and insert an image -> texture deref cast along
the way. In this situation, we can end up with a texture deref chain
pointing to an image variable, which is not a combined sampler+texture
object. Bail out when an image type is found, like we do for bare
textures.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13993 >
2022-01-31 16:37:47 +00:00