This change adds indent for vertex/fragment IDVS decode to make it
easier to see where state for one ends and the next begins.
It also adds "Buffer" to the name of AttributeBuffers to make it more
destinct from Attributes.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39431>
In case of texel buffers that are read in the shader, but not bound by
the application, the current implementation would incorrectly try to
read from non-existent buffers.
To ensure this does not happen, this change sets the format for any
unbound attributes to CONST_0000, which will kill any actual
reads/writes and always return zeroes.
This fixes the following two tests:
- spec@arb_shading_language_420pack@active sampler conflict
- spec@arb_texture_buffer_object@render-no-bo
Fixes: a21ee564e2 ("pan/bi: Make texel buffers use Attribute Buffers")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39431>
Also change to use H265 constant for maxDpbSlots (both values for H264 and H265
are the same).
Fixes: ee535aa039 ("radv: video: rework maxActiveReferenceSlot/MaxDpbSlots")
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39609>
The specification says that the fastest types should come first. So we
order the biggest matrix sizes first, because they generally have lower
overhead in terms of address calculation and provide more performance.
This also makes NVK more aligned with Nvidia's implementation.
Acked-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39614>
These tests regressed for G52 in !38490, and getting that fixed is
turning out to be a bit trickier than expected. So let's mark these as
expected for now.
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39625>
As we emulate linear interpolation on Mali HW, we don't want to do that
unless we have to. So let's expose this cap to avoid some needless
cycles in shaders.
Reviewed-by: Loïc Molinari <loic.molinari@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39426>
Not all HW can do linear interpolation natively, and eumlating it
can come at a cost. This adds a cap that the gallium driver can
expose, that makes us try to avoid it when we can.
Reviewed-by: Loïc Molinari <loic.molinari@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39426>
We might not actually always want to use linear interpolation here.
This is going to be useful in the next commit.
Reviewed-by: Loïc Molinari <loic.molinari@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39426>
Advanced blend operations are lowered in the fragment shader using
nir_lower_blend, with the actual blending done via framebuffer fetch.
For monolithic pipelines, lowering happens at pipeline compilation.
For GPL, lowering happens at link time when blend state is known.
For shader objects, lowering happens at draw time with the result
cached until blend parameters, fragment shader, or color write state
changes.
The lvp_nir_lower_blend() helper handles the IO lowering sandwich
required by nir_lower_blend: lower derefs to IO intrinsics, run the
blend lowering, then convert back to derefs for llvmpipe.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39612>
This is just wrong if the secondary uses ESO because the emitted
pipelines would be NULL in the secondary, but if the app re-binds
the same pipeline in the primary it would consider it as already
emitted. A sequence like this would break:
CmdBindPipeline(compute)
CmdDispatch()
CmdExecuteCommands() --> with ESO compute
CmdBindPipeline(compute)
CmdDispatch()
This tracking is probably useless anyways because it's unlikely that
apps will rebind the same pipeline right after CmdExecuteCommands() but
let's keep it because this is a bugfix.
Fixes
dEQP-VK.api.command_buffers.pipeline_shader_object_mix_with_secondaries.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39587>
Implement software workaround for AVP decoder corruption on Gen12
platforms. These platforms require a warmup workload before
the actual AV1 decode to prevent output corruption.
- Gen12: Tiger Lake, DG1, Rocket Lake, Alder Lake
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39604>
The pMiColStarts/pMiRowStarts arrays from applications may have
incorrect units. Instead of using them directly, compute the tile
start positions in superblock units internally based on the tile
dimensions.
Cc: mesa-stable
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39471>
Add a script hook which can be used to decide whether to show a
particular descriptor variant. For example, the FMT determines
MULTI_PLANE vs SINGLE_PLANE, and the TYPE determines between
BUFFER vs other formats.
Some ambiguity remains. We could do better in most cases by
extracting info from the enabled shader stages. But this is
a good start.
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39573>
For parsing packets or descriptors, it is useful to be able to use
pkt.FOO instead pkt[2].FOO. This makes it easier when fields move
between dwords in the domain.
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39573>
This was never actually implemented by lua. Remove it. In the case of
enums, implement the __eq() function instead so enum values can be
compared for equality.
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39573>
We aren't really using this, other than to document the field was added
in a7xx. And it stands in the way of using a new enum for descriptor
types.
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39573>
Replace assert() with proper error checking for realloc() failure.
If realloc fails, free any existing modifiers, clean up resources,
and return NULL instead of potentially crashing or leaking memory.
Fixes a potential memory leak when memory allocation fails.
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39215>
Martin Krastev (@blu) left broadcom a while ago, update the admins of vmware
farm to Maaz Mombasawala (@mombasa) and Neha Bhende (@bhenden).
Signed-off-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39473>
This was already supported if we have the DX10 SetPredication command.
We are already handling the conditional correctly in svga_render_condition.
The support is indicated by have_set_predication_cmd.
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39619>
Pick the value from the brw_shader instead of from the prog_data, since
when there are multiple variants, the prog_data one will have the
maximum value. Picking the wrong value also caused compute shaders
that had a single variant to report 0 GRFs since the prog_data was
being filled after the generate_code() call.
Issue spotted by Felix DeGrood.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39601>
The gl43 capability indicates we have a DX11.1+ device which supports
64 UAVs shared across all stages. This limit is roughly equivalent to
GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES which is controlled by
caps.max_combined_shader_output_resources which we currently set to
SVGA_MAX_SHADER_BUFFERS (8) which is probably too low since this limit
is also supposed to include render targets which we also set to 8.
The shader linker will validate that the pipeline does not exceed this
combined limit so we don't have to worry about the sum of the max for all
stages (16*5=80) now exceeding it.
Increasing the combined limt and the number of SSBOs from 8 to 16 allows
Blender to run as it requires 12 SSBOs. In theory we could increase the
combined limit to 56 but these limits are poorly documented and
implemented.
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39043>
GitLab job timeouts should be set on individual jobs rather than in
generic rule templates.
Set zink-lavapipe to a 15 minute timeout.
LAVA jobs should have the blanket 1 hour timeout even if the jobs don't
take that long, due to how lava-job-submitter works.
Remove redundant timeouts from .radv-zink-test-valve, as they were always
being overridden.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39530>
And immediately implement it in terms of
DRM_FORMAT_MOD_ARM_INTERLEAVED_64K.
Also ban DRM_FORMAT_MOD_ARM_INTERLEAVED_64K for WSI in panfrost.
Normally, the modifier's test_props would take care of but as
panfrost doesn't use test_props, this has to be handled in
panfrost itself.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38986>