Jesse Natalie
aa94e0b37c
d3d12: Rename bind invalidate options to transition flags
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Sil Vilerino
739283da13
d3d12: Improve planar resource support to handle video requirements
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16286 >
2022-05-17 21:02:25 +00:00
Jesse Natalie
944832d3d7
d3d12: Cache a modifyable copy of the nir options in d3d12_screen
...
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
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
0ed7b44f5c
d3d12: Initial plumbing for tesselation
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14399 >
2022-01-26 01:31:35 +00:00
Jesse Natalie
223a05dc53
d3d12: Temp resources for same-resource copies can be MSAA too
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14624 >
2022-01-21 23:08:26 +00:00
Jesse Natalie
2da7db759b
d3d12: Relax multisampling direct copy requirements
...
D3D has supported partial copying of MSAA resources as as long as
the sample counts match since D3D10.1
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14624 >
2022-01-21 23:08:26 +00:00
Jesse Natalie
9609387a4f
d3d12: Fix re-enabling predication after temporary disablement
...
The equal-zero vs not-equal-zero property was previously lost
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14486 >
2022-01-14 15:54:33 +00:00
Jesse Natalie
2188607014
d3d12: Support RGBX formats mapped to RGBA
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13054 >
2021-11-19 22:54:46 +00:00
Jesse Natalie
fde36d7992
d3d12: Don't wait for GPU reads to do CPU reads
...
Reviewed By: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13669 >
2021-11-09 18:31:19 +00:00
Jesse Natalie
e9a1e1c21e
d3d12: Resources inherit from threaded_resource
...
Reviewed By: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670 >
2021-11-09 00:44:52 +00:00
Marek Olšák
6d483fed85
gallium/u_blitter: disable sample shading for all blits
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13602 >
2021-11-04 15:06:09 +00:00
Marek Olšák
8c6e18bc51
util,gallium: put count in pipe_resource & sampler_view on its own cache line
...
This adds 60 bytes to both structures. It eliminates "False Sharing"
for atomic operations (see wikipedia).
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11618 >
2021-10-13 03:26:20 +00:00
Marek Olšák
bb89cf4bf3
gallium: add take_ownership into set_sampler_views to skip reference counting
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12334 >
2021-08-20 15:04:20 +00:00
BillKristiansen
bb1d0025d8
d3d12: Fixes stale context bindings after copy, resolve, and clear
...
Some GL applications, including Blender, are producing rendering
artifacts due to missing resource state barriers.
The d3d12_context keeps track of all resources bound as shader resource
or constant buffers. If any of these resources are used for Copy,
Resolve, or Clear source/target, the context tracking must be updated
so the correct state can be restored before the next draw call.
This change is something of a big hammer. Essentially, if a resource
currently bound as an SRV or CBV gets used for a non-shader access, a
flag is set in the context that invalidates all bindings of the same
type on the same shader stage. Thus the next Draw execution refreshes
the shader views and state transitions state before invoking Draw on the
command list.
A more elegant (and complex) fix would limit the invalidation to
resource state only, rather than also forcing a recreation of resource
views. It is unclear right now whether it is worth the time to
implement a more elegant fix.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10871 >
2021-05-20 01:02:40 +00:00
BillKristiansen
9003735b91
d3d12: fix for upside-down multisample stencil blit
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8704 >
2021-01-28 16:40:17 +00:00
Marek Olšák
b688ea31fc
gallium: add unbind_num_trailing_slots to set_sampler_views
...
Instead of calling this functions again to unbind trailing slots,
extend it to do it when binding. This reduces CPU overhead.
A lot of drivers ignore "start" and always unbind all slots after "count".
Such drivers don't need any changes here.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8298 >
2021-01-27 23:53:35 +00:00
Connor Abbott
3ed9e75868
d3d12/blit: Use sized types for nir_tex_instr::dest_type
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7989 >
2021-01-25 11:21:48 +01:00
Jesse Natalie
9252f947e5
d3d12: Fix clang warnings from {0} in C++ code
...
There's no reason for the 0 here since C++ supports {},
and clang doesn't like it, so drop it.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248 >
2021-01-03 23:07:21 +00:00
Jesse Natalie
54dd7b1d35
d3d12: Fix unused local variable warning in release build
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248 >
2021-01-03 23:07:21 +00:00
Jesse Natalie
244a41d6a8
d3d12: Remove Windows-specific macros
...
These all have trivial standard or Mesa replacements
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7780 >
2020-12-01 17:10:47 +00:00
Jesse Natalie
4358af87e7
d3d12: Fix signed-unsigned comparison warnings
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7780 >
2020-12-01 17:10:47 +00:00
Jesse Natalie
6060291c0e
d3d12: Fix brace-initialization issues
...
For C++ code, we shouldn't use {0}, instead use {} to default-
initialize everything. For code with nested structs/unions, make
sure there's enough braces to appropriately scope initialization.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7780 >
2020-12-01 17:10:46 +00:00
Erik Faye-Lund
17ebce2f13
d3d12: transition the right planes
...
We need to start transitioning at plane 1 for stencil-only resources,
otherwise we end up transitioning the depth-plane instead.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3837
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7672 >
2020-11-18 17:26:44 +00:00
Erik Faye-Lund
5d2e9d76c1
d3d12: fix code after simple-shader helper changes
...
Fixes: 4e9328e3b6
("nir_builder: Return a new builder from nir_builder_init_simple_shader().")
Fixes: 5f992802f5
("nir/builder: Drop the mem_ctx arg from nir_builder_init_simple_shader().")
Fixes: eda3e4e055
("nir/builder: Add a name format arg to nir_builder_init_simple_shader().")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7574 >
2020-11-12 14:32:56 +00:00
Erik Faye-Lund
2ea15cd661
d3d12: introduce d3d12 gallium driver
...
This driver will allow running OpenGL and OpenCL on top of Gallium
for any hardware supporting Microsoft's Direct3D 12 on Windows 10.
This is the combination of a lot of commits from our development branch,
containing code from several authors.
Co-authored-by: Bill Kristiansen <billkris@microsoft.com >
Co-authored-by: Gert Wollny <gert.wollny@collabora.com >
Co-authored-by: Jesse Natalie <jenatali@microsoft.com >
Co-authored-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7477 >
2020-11-10 15:37:07 +00:00