Commit Graph

193069 Commits

Author SHA1 Message Date
Erik Faye-Lund 3711964f33 panvk: do not handle illegal null
The Vulkan spec says that VkBindBufferMemoryInfo::memory must be a valid
VkDeviceMemory handle, see

https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkBindBufferMemoryInfo-memory-parameter

So let's assert instead here.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27910>
2024-03-01 12:34:27 +00:00
Lionel Landwerlin 5a7e58a430 anv: fix non matching image/view format attachment resolve
Let's say you have an image in R32_UINT format, a view is created in
R32_SFLOAT and used as color attachment.

When resolving the attachment, our current code uses the image format
(R32_UINT in this case). But resolve mode might apply only to SFLOAT,
so we currently run into an assert in blorp.

We should instead use the view format. There is an exception for
depth/stencil view because the format we want to resolve is actually
the depth/stencil format, not just the depth or stencil aspect.

This fixes vkd3d-proton's test_multisample_resolve_formats.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27875>
2024-03-01 12:10:28 +00:00
Eric Engestrom 2106092e63 ci/android: use a specific version of android-cuttlefish
Using whatever version is the latest at the time of the image build is
bad practice from a stability & reproducibility point of view, and the
latest version is currently broken, preventing any change that rebuilds
the android image from being merged.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27911>
2024-03-01 11:16:41 +00:00
Boris Brezillon fab675956a panfrost: Update the release note to mention G310/G610 addition
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon d778df1a60 panfrost: Advertize G310 support
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon d17d076cc6 panfrost: Advertize G610 support
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Bob Beckett f54c8413e6 panfrost: Add the gallium glue to get panfrost loaded when panthor is detected
Needed if we don't want to force users to pass GALLIUM_DRIVER=panfrost.

Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Bob Beckett a29443dc6b panfrost: Add an entry for panthor in the renderonly_drivers[] array
Same as panfrost, but the kernel driver has a different name.

Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 4943002a2c panfrost: Enable v10 in the gallium driver
Now that everything is in place to support v10, add it to the
panfrost_versions array in meson.build and patch panfrost_create_screen()
to hook up pipe_screen initialization.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Alyssa Rosenzweig 447075eeee panfrost: Add support for the CSF job frontend
CSF-specific implementation of the job-frontend helpers.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon e6a97a2b4a panfrost: Add a cleanup_batch() method to panfrost_vtable
We have to do some cleanup on v10+. Let's add a new hook to allow
per-arch batch cleanup procedures.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 5b53db5f60 panfrost: Add a panfrost_context_reinit() helper
Will be needed for v10, so we can re-instantiate a context when an
unrecoverable error is reported on a group or VM.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 5e3771ab5a panfrost: Add arch-specific context init/cleanup hooks
This will allow us to defer some CSF-specific initialization to
pan_csf.c, keeping pan_context.c job-frontend agnostic.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 1b93524605 panfrost: Relax position result alignment constraint on v10+
Looks like the alignment constraint is gone on v10...

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Alyssa Rosenzweig 3b82448f47 panfrost: Add a library to build CSF command streams
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 8e303b9350 pan/genxml: Make sure pan_pack() evaluates 'dst' only once
Will be useful for the cs_builder, where we have

and we don't want cs_alloc_ins() to be called more than once.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 2d44800079 panfrost: Don't allocate a tiler heap buffer on v10+
Heap management is completely different on CSF hardware, and the heap
buffer remain unused in that case. Make the tiler heap BO creation
conditional to reflect that.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon ce24f78603 pan/decode: Introduce the concept of usermode queue
This way we allow JUMPs to be decoded when the decode function is
passed an indirect CS buffer that's called from a kernelmode queue.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 2e9450f49f pan/genxml: Various CS related improvements in v10.xml
Various improvements to the CS related definitions:

- make the field name consistent across all instructions using the same
  pattern
- define missing fields,
- replace the CEU prefix by a CS prefix
- define enums where it makes sense
- re-order instruction definitions by IDs
- add missing instructions

While at it, extend decode_csf.c to support all known instructions.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 729f6b28a6 panfrost: Add v10 support to libpanfrost
The code has already been patched to support v10, we just need to add
v10 to the version array when compiling per-arch files.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 97f6a62f7e pan/kmod: Add a backend for panthor
Panthor is a new kernel driver handling CSF-based GPUs. It's designed
around the new VM model where:

- VM management is all explicit (you get to choose where objects are
  mapped in the GPU VA space)
- synchronization is explicit too (there's not BO_WAIT, and we don't
  pass BOs around to serve as implicit deps)

We add a few panthor specific helpers (those exposed in panthor_kmod.h)
too:

- panthor_kmod_xxx_sync_point() are needed to make pan_kmod_bo_wait()
  work with the new synchronization/VM model
- panthor_kmod_get_flush_id() is exposing the LATEST_FLUSH_ID register
- panthor_kmod_vm_handle() is providing a way to query the VM handle
  attached to the pan_kmod_vm object (needed for a few panthor ioctls)

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon fe76c22aeb drm-uapi: Add panthor uAPI
Import panthor uAPI header from the drm-misc-next branch, commit
0f25e493a246 ("drm/panthor: Add uAPI").

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 89ea39c09d pan/perf: Reject panthor kernel driver
Make sure we reject perfcnt users when the kernel driver is not panfrost.
We might decide to abstract perf counters at the kmod level at some
point, but we're not there yet.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 1519d613c8 panfrost: Prepare support for GPU variants
Some GPU gens have variants impacting the GPU capabilities. Let the
kmod backend report a variant ID through a new
pan_kmod_dev_props::gpu_variant field, and patch the panfrost_model
logic to match both the gpu_id and the gpu_variant.

All existing entries are assumed to have no variant, hence the
gpu_variant field assigned to zero.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 4477daf957 panfrost: Rework the way we compute thread info
Rework the way we compute thread info to make it mostly GPU-agnostic
outside of the kmod backend.

The new logic is based on the following information extracted from
GPU registers:

- mximum number of threads per core
- maximum number ot threads per workgroup
- number of registers per core

If the GPU doesn't provide this information (registers are zero), we
pick the per-arch defaults we had in panfrost_max_thread_count().

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 73da66706e pan/kmod: Reject pre 1.1 panfrost kernel drivers
Panfrost kernel driver has been around long enough to bump the minimal
requirement to 1.1. This allows us to get rid of the texture_features
hack we had to cope with the absence of
DRM_PANFROST_PARAM_TEXTURE_FEATURES[0-3] kernel side.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Suggested-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 0b5f1b6cb1 pan/kmod: Add a PAN_KMOD_VM_FLAG_TRACK_ACTIVITY flag
This flag reflects whether the backend should track the VM activity or
not. Needed if PAN_KMOD_VM_OP_MODE_DEFER_TO_NEXT_IDLE_POINT is used, so
we can insert proper dependencies on our VM operations.

Patch the gallium driver to set this flag at VM creation time since it
calls pan_kmod_vm_bind() with
mode=PAN_KMOD_VM_OP_MODE_DEFER_TO_NEXT_IDLE_POINT in the BO
destruction path.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Boris Brezillon 812035b2d2 pan/kmod: Fix typo in pan_kmod_vm_op_check() helper
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26358>
2024-03-01 10:42:43 +00:00
Karol Herbst 36fb256e9a rusticl/event: we need to call the CL_COMPLETE callback on errors as well
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10673
Fixes: 47a80d7ff4 ("rusticl/event: proper eventing support")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27777>
2024-03-01 09:44:10 +00:00
Daniel Schürmann 67ea2eb97a radv: fix initialization of radv_shader_layout->use_dynamic_descriptors
Fixes: 66eaca3a0a ('radv: introduce radv_shader_layout for per-stage descriptor layout')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27898>
2024-03-01 09:06:33 +00:00
Christian Gmeiner 0a3a80a4ca etnaviv: Remove no_oneconst_limit from etna_inst
It makes no sense to store no_oneconst_limit in struct etna_inst as this
flag is not instruction specific. This is a flag that affects every instruction.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27887>
2024-03-01 07:38:57 +00:00
Samuel Pitoiset 529efb1f9b radv: enable deviceGeneratedComputePipelines
This is supported now and it's passing
dEQP-VK.dgc.nv.compute.layout.pipeline_*.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset cbeb88012c radv: force shader BOs to be local BOS with DGC indirect compute pipelines
To make sure the compute shader BO is always part of the DGC execute
submission. This is more like a workaround but this ext is currently
only exposed for vkd3d-proton and it doesn't use indirect compute
pipeline binds.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset c253a76f5d radv: handle indirect pipeline binds with scratch and DGC
vkCmdUpdatePipelineIndirectBufferNV() can be called on any queue
supporting transfer operations and it's not required to call it on the
same queue as DGC execute. This is very annoying if the compute shader
has scratch because it needs to be configured per queue.

The solution is to gather the maximum possible scratch size used by
indirect compute pipelines and use that to configure scratch.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset a2d67adff1 radv: implement indirect compute pipeline binds with DGC
This also supports push constants.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset 12b015940f radv: implement vkCmdUpdatePipelineIndirectBufferNV()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset 74ff7fe02f radv: implement vkGetPipelineIndirectXXX() for DGC
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset 91c21c8cba radv: add support for VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
This stores the VA/size of the indirect buffer to be used in
vkCmdUpdatePipelineIndirectBufferNV.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset 6d8f88d12f radv: add a function to get compute pipeline metadata for DGC
This struct will be used to emit a compute pipeline from the prepare
DGC shader.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:59 +00:00
Samuel Pitoiset 7409d7ec29 radv: add a helper to calculate the compute resource limits
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:58 +00:00
Samuel Pitoiset 1cddf59165 radv: get the pipeline layout info from the push constant token with DGC
They must be compatible and this allows us to remove some pipeline
references (useful for experimenting pipeline binds).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
2024-03-01 06:59:58 +00:00
Caio Oliveira 97759ef139 intel/brw: Remove typedefs from fs_builder
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 21:14:13 -08:00
Caio Oliveira 0f5f3fddd4 intel/brw: Fold backend_instruction into fs_inst
Since we are touching it, change fs_inst to use struct instead of
class so its forward declaration is C compatible.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 21:14:13 -08:00
Caio Oliveira e5c5a983f7 intel/brw: Move functions from backend_instruction into fs_inst
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 21:14:13 -08:00
Caio Oliveira f5a593ade7 intel/brw: Use fs_inst in disasm_annotate()
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 21:14:13 -08:00
Caio Oliveira db322554a7 intel/brw: Use fs_inst explicitly in various passes
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 20:47:48 -08:00
Caio Oliveira 692021cad7 intel/brw: Use fs_inst in cfg_t
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 20:47:48 -08:00
Caio Oliveira d5ed82b97c intel/brw: Hide the definition of cfg_t et al from C code
Will make easier to flatten the IR.  We can revert this back later
if we need to.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 20:47:48 -08:00
Caio Oliveira 1f975e7af7 intel/brw: Use C++ for brw_disasm_info.c
This code uses cfg_t which we are going to rework a bit as part of
flattening the IR types.  It is easier if it can see C++ types for now.
At the end we can change this back if needed.

To avoid casting and be consistent with existing structs,
use int for some offset parameters in the functions.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27866>
2024-02-29 20:47:48 -08:00
Caio Oliveira 6e33b39b46 intel/compiler: Remove nir_print_instr hack in disasm_info
The compilers (brw and elk) static libraries depend only on
idep_nir_headers instead of idep_nir.  This was done to
increase the parallelism in the build.  One side effect is that
consumers of the compilers must depend on idep_nir themselves to
ensure nir symbols are resolved.

Various intel tools don't use NIR directly, so don't depend on it,
and only use a few functions of the compiler, that *mostly* don't
depend on linking NIR functions except for the case of nir_print_instr.

The current code adds a weak empty function to take its place in case
it is not linked.  This is sort of a hack because if we change the
compiler in ways that use NIR differently, or we use different functions
of the compiler in the tools, we will end up having to add other
dummy definitions.

A better solution here (suggested by Dylan) is to add the idep_nir
to the list of dependencies of the compilers idep's.  The static
libraries of the compilers still don't depend directly on NIR,
but any user of idep_compiler_* will get that dependency.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27865>
2024-02-29 23:08:16 +00:00