Faith Ekstrand
dfe4627e3d
nouveau/mme: Prepare the builder for multiple GPU generations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
ff39efdf55
nouveau/mme: Move the cf_stack struct to mme_builder.h
...
Fermi wants exactly the same thing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
7630f0e645
nouveau/mme: Drop the implicit_imm parameter from mme_alu_to()
...
It's only used for control-flow and MERGE, all of which are special.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
baa1735364
nouveau/mme: Move the guts of mme_state_arr_to() into mme_tu104_builder.c
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
9e1a868b6d
nouveau/mme: Move the guts of mme_merge_to() into mme_tu104_builder.c
...
It's going to be a bit different on Fermi.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
0b52da5afa
nouveau/mme: Break the Turing builder guts into a separate header
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
724f7a875f
nouveau/mme: Make helpers less Turing specific
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
cc87631b20
nouveau/mme: Use mme_mov() for temp copies of register IMM32 sources
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
d207b3356e
nouveau/mme: Add an intermediate MME_CMP_OP enum
...
Having everything go through the Turing opcodes isn't a good long-term
plan so add an intermediate which is independent of HW generation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
c0c7e23ca8
nouveau/mme: Add an intermediate MME_ALU_OP enum
...
Having everything go through the Turing opcodes isn't a good long-term
plan so add an intermediate which is independent of HW generation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
db5b38cb9e
nouveau/mme: Add a mme_reg_alloc struct
...
This has some nice asserts which we'll want when we start having
reserved registers on Fermi.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
2d7f96228d
nouveau/mme: Move mme_value into its own header
...
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
fa5a82dc32
nouveau/mme: Make alu_op_to_str static
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Faith Ekstrand
ffc619b3eb
nouveau/mme: Invoke SET_OBJECT in the tests
...
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
Faith Ekstrand
0d25483101
nouveau/winsys: Take a drmDevicePtr in nouveau_ws_device_new()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:03 +00:00
Rebecca Mckeever
44431f8ee5
nvk: Implement VK_EXT_non_seamless_cube_map
...
Add new bit to VkSamplerCreateFlags and then advertise
VK_EXT_non_seamless_cube_map.
Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/42
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
788ae9b601
nvk: Enable shadow sampling
...
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
53e0bef359
nvk: Advertise EXT_4444_formats
...
The following tests now pass:
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.nearest
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.linear
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.nearest_mipmap_nearest
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.linear_mipmap_nearest
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.nearest_mipmap_linear
dEQP-VK.texture.filtering.2d.formats.a4b4g4r4_unorm.linear_mipmap_linear
The corresponding tests for a4r4g4b4_unorm are still passing.
Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/36
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
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
Rebecca Mckeever
44b7d71c65
nvk: Advertise KHR_device_group
...
Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/35
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
d471da3f95
nvk: Implement nvk_CmdDispatchBase and delete nvk_CmdDispatch
...
Implement nvk_CmdDispatchBase() and then delete nvk_CmdDispatch() so that
the vk_common verion with be used instead. This will avoid repeated code.
Update nvk_CmdDispatchIndirect() so that it sets the three base_group
fields of the root descriptor table to 0.
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
3fb732ad7d
nvk: Lower base_workgroup_id
...
Lower load_base_workgroup_id intrinsics to a load_ubo using NIR.
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
668e859255
nvk: Add base_group to root descriptor table
...
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
Faith Ekstrand
3c5fbfcc30
nvk: Set maxMemoryAllocationCount
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Thomas H.P. Andersen
7bb03cbd7a
nvk: call correct macro to clear views
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Thomas H.P. Andersen
1de2bc6144
nvk: fix maxPushDescriptors
...
maxPushDescriptors was advertised as 0.
Spotted with Sascha Willems pushdescriptors example
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
436171ecf1
nvk: Add a helper for loading resource_index-based descriptors
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
abe806236d
nvk: Drop block_size from the root descriptor table
...
It's unused because Vulkan doesn't support compute dispatches with an
unknown workgroup size. If we ever do, we can add it back in. In case
it ever comes back, add an unreachable() to nvk_nir_lower_descriptors().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
6411cbc6c5
nvk: Lower load_num_workgroups ourselves
...
Instead of relying on the back-end to put it at a magic offset in a
magic constant buffer, lower it in NIR.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
3a6aeb7caa
nvk: Rename grid_size to group_count
...
That's the Vulkan name for it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
03738819f9
nvk: Capitalize NVK in user exposed strings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Yusuf Khan
062b8e7477
nvk: expose KHR_driver_properties
...
Signed-off-by: Yusuf Khan <yusisamerican@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
748bc8e487
nvk: Advertise VK_EXT_separate_stencil_usage
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
0a84e58180
nvk: Advertise EXT_index_type_uint8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
c461c30181
nvk: Advertise KHR_uniform_buffer_standard_layout
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
1bcb8797bc
nvk: Enable KHR_dynamic_rendering
...
We've been dynamic rendering since day 1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
dd044423a2
nvk: Advertise VK_KHR_bind_memory2
...
We already use the entrypoint (via the 1.0 wrappers); we just need to
turn on the extension.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
1e5b6074e0
nvk: Advertise samplerMirrorClampToEdge via 1.2 features
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
b934e98452
nvk: Enable VK_EXT_provoking_vertex
...
We already have it plumbed through. Just need to turn it on.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
d1b9441a8e
nvk: Enable inheritedQueries
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
0e84eb35e2
nvk: Re-order Vulkan 1.0 feature bits
...
Also, leave TODO comments for anything we want to enable but haven't.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Rebecca Mckeever
45c2ebc341
nvk: Convert system values for gl_PointCoord and PointCoord into inputs
...
Currently, any attempt to use gl_PointCoord (GLSL) or PointCoord (SPIR-V)
results in an assert in codegen:
ERROR: unknown nir_intrinsic_op load_point_coord
This patch addresses the error by converting nir_intrinsic_load_point_coord
system value into VARYING_SLOT_PNTC. The following tests now pass:
dEQP-VK.glsl.builtin_var.simple.pointcoord
dEQP-VK.glsl.builtin_var.simple.pointcoord_uniform_frag
dEQP-VK.glsl.builtin_var.simple.pointcoord_uniform_vert
Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/33
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00
Faith Ekstrand
a08ad59ea6
nvk: Use nvk_buffer_addr_range for buffer descriptors
...
Because the helper checks for buffer == NULL, this should prepare us for
VK_KHR_robustness2 where we need to handle null descriptors.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:02 +00:00