Yonggang Luo
32d2f70742
nouveau: Use align64 instead of ALIGN over input layer_size_B
...
layer_size_B is uint64_t, so use align64 over it
Because array_stride_B is uint32_t, so cast back to uint32_t
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23932 >
2024-01-11 17:30:46 +00:00
Yonggang Luo
08b6f786ac
nouveau: Use align64 instead of ALIGN for 64 bit value parameter
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26868 >
2024-01-06 02:05:09 +00:00
Faith Ekstrand
22b99f15b9
nvk: Use ENUM_PACKED for enums instead of PACKED
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:59 +00:00
Dave Airlie
884da2622c
nvk/nil: allow storage on VK_FORMAT_A2B10G10R10_UINT_PACK32
...
Fixes:
KHR-GL45.shader_image_load_store.basic-allFormats*
with zink
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26536 >
2023-12-07 15:35:14 +00:00
Faith Ekstrand
7f1dc665ef
nil: Add R64_SINT and R64_UINT formats
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Mohamed Ahmed
6ab7753042
nil: Add support for linear images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Faith Ekstrand
db1ec1c67a
nil: Add support for filling out linear texture headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Faith Ekstrand
6ab969ff4a
nil/format: Advertise R10G10B10A2_UINT texture buffer support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25653 >
2023-10-11 02:56:28 -05:00
Faith Ekstrand
7bedd0c2fc
nil/format: Use A for alpha blend
...
This lets us reserve B for buffer.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25653 >
2023-10-11 02:56:21 -05:00
Faith Ekstrand
922bd13152
nvk: Use align() and align64() instead of ALIGN_POT
...
For one thing, they actually assert that the alignment factor is a power
of two. More importantly, though, because they're real functions and
not macros, they up-cast the alignment to a full uint32_t or uint64_t
before doing the alignment calculation. If you do ALIGN_POT() on a
64-bit value with a 32-bit alignment, it truncates to 32 bits because
the NOT is done before the up-cast due to C implicit cast rules.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25555 >
2023-10-04 20:15:55 -05:00
Faith Ekstrand
919a717ba4
nouveau/nil: SPDX everything
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25085 >
2023-09-06 17:05:58 +00:00
Mohamed Ahmed
783d59eec1
nil: Add support for G8B8_G8R8_UNORM and B8G8_R8G8_UNORM
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24614 >
2023-08-16 22:36:27 +00:00
Faith Ekstrand
866fc8b3f4
nil: Add a nil_image_level_extent_px() helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:07 +00:00
Dave Airlie
113d3447bb
nvk: enable rgb32 texel buffer support
...
This is needed for zink.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:07 +00:00
Echo J
729b34be8a
nil: Add A4B4G4R4_UNORM format support
...
DXVK versions before v1.5.5 need this format in some cases
I haven't tried running CTS yet, but GTA San Andreas runs
well now on DXVK v1.5.1 (before this change it crashed) so
I think CTS should be happy enough 🐸
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:05 +00:00
Faith Ekstrand
0895e160a8
nil: Add an image_level_as_uncompressed helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:05 +00:00
Faith Ekstrand
5fff5b7c4f
nil: Add a nil_image_for_level helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:05 +00:00
Dave Airlie
d66182b215
nvk/nil: don't ask for compressed image kind
...
These need special kernel handling around the mmu, avoid asking
for them, nvidia don't seem to use them with gsp either yet.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:04 +00:00
Faith Ekstrand
67008dfe78
nil: Only choose a PTE kind for tiled images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Dave Airlie
be5a07aa52
nil: Fix image align and size constraints
...
In order to use compressed images we have to align to at least (1<<16)
though the kernel also likes (1<<21).
This fixes the alignments/sizes so they can work with vm allocs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Rebecca Mckeever
70ce8ba5a4
nvk: Implement VK_EXT_image_view_min_lod
...
Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/40
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Rebecca Mckeever
71da9cbefb
nouveau/nil: Add macros for ufixed
...
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
6fd6baa989
nouveau/nil: Use nv_device_info for format queries
...
There's no reason why any of this needs access to the fd or the context.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
f23b892a9d
nouveau/nil: Take an nv_device_info for image functions
...
There's no reason why any of this needs access to the fd or the context.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
433e742682
nouveau/winsys: Move device type into nv_device_info
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
87f946730f
nouveau/winsys: Add an info to nouveau_ws_device
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Rebecca Mckeever
e89a715f4a
nvk: Add A4B4G4R4 formats to nil_format_info table
...
The nil_format_info table contains the following lines, which add
A4R4G4B4 formats.
C4(A, B4G4R4A4_UNORM, NONE, B, G, R, A, UNORM, A4B4G4R4, T),
F3(A, B4G4R4X4_UNORM, NONE, B, G, R, x, UNORM, A4B4G4R4, T),
Add similar lines to the nil_format_info table for A4B4G4R4 formats.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Rebecca Mckeever
115644cbc6
nvk: Add VK_FORMAT_B4G4R4A4_UNORM_PACK16 format to nil_format_info table
...
The following tests now pass:
dEQP-VK.pipeline.monolithic.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.*
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Karol Herbst
27d6f994ba
nvk: support pre Maxwell Texture Headers
...
GM10x seems to disable it by default, so enable them there.
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
28e73a72f6
nil: Add an offset4d struct and some helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:01 +00:00
Faith Ekstrand
256a1e4193
nil: Properly support MSAA
...
We had a num_samples field in nil_image but didn't do anything with it
for layout. This adds real code for MSAA which seems analygous to the
code in nvc0_miptree.c and seems to match HW based on my image layout
R/E crucible test.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:01 +00:00
Faith Ekstrand
157fa1871c
nil: Use ONE for the anixotropic coarse spread function
...
No idea if it's what we want but this is what nouveau does and it's good
to be consistent for now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:01 +00:00
Faith Ekstrand
611889bc2a
nil: Fix include guards in nil_image.h
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:01 +00:00
Faith Ekstrand
7559d2e93c
nil: Add a helper for getting 2D views of 3D images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:01 +00:00
Faith Ekstrand
33ed4b9bc5
nil: Don't claim texture support for 2-bit SNORM
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
7696f8c8d2
nil: Fix nonnormalized coordinates
...
Also, replace our TODO with a real comment explaining how nonnormalized
coordinate select works between image and texture header.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:58 +00:00
Faith Ekstrand
d407e2b130
nil: Fix max mip level
...
The MAX_MIP_LEVEL field needs the actual number from the image because
it's used to compute the stride between layers. The restrictions on mip
level come entirely from the RES_VIEW fields.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:58 +00:00
Faith Ekstrand
89591214a3
nil/format: Depth/stencil formats appear as red
...
Previously, it was treated as luminance and the depth or stencil
component was broadcast to all channels except alpha. In Vulkan, depth
and stencil textures are treated as red. If we want it treated
differntly by some other API, that driver can do that with a swizzle.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:58 +00:00
Faith Ekstrand
1410100ebe
nil: Add a PTE kind for Z32_FLOAT
...
This values was found by trial-and-error poking at the hardware until it
stopped complaining. It's not clear if we need separate values for
compressed vs. not. This appears to work on Turing regardless of what
we set for SET_Z_COMPRESSION.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:58 +00:00
Faith Ekstrand
71420b4c7d
nil: Compute PTE kinds and tile modes for images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:58 +00:00
Faith Ekstrand
77db3e99dd
nil: Add more format support helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
0af169b86b
nil: Re-introduce the format capabilities
...
The bits are already in the table we copied from the nouveau GL drivers,
we just need to set up some enums and plumb it through. With that,
we're now properly advertising which formats are renderable.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
0c6c2fe2cf
nil: Rename rendering to color_target
...
Also, add a helper for depth/stencil formats and use
nil_format_supports_color_targets() helper to compute Vulkan format
features rather than checking for a non-zero color format.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
e6866593d5
nil: Rename rt to czt in the format info struct
...
It's used for both depth/stencil and color so rt isn't quite the name we
want. Also, add a comment.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
db0a63c909
nil: Use nvidia headers for ZS format enums
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
56ad7b57a4
nil: Use the nvidia headers for render target format enums
...
Two notable changes here:
1. BITMAP no longer exists
2. B10G10R10A2_UINT was wrongly mapped to RGB10_A2_UINT before
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
312e9a3eb0
nil: Use nvidia headers for texture format enums
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
6eaa45933e
nil: Properly depend on nouveau winsys and nvidia-headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
a4c1460641
nil: Switch to using the new headers for TIC entries
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00
Faith Ekstrand
8dff06aada
nvk: add linear image creation support.
...
the dEQP-VK.draw.* tests use a tiled + linear image and copy between
them.
This fixes the result gathering, not the actual result.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:57 +00:00