Age | Commit message (Collapse) | Author | Files | Lines |
|
Now matches classic's i915_reg.h and the spec.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11559>
|
|
I ran into this when accidentally changing the scheduling order in the
hl2 trace.
Fixes: 0ffcb19 ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
This was needed because code iterating the regs array needed to know
what was a destination and what wasn't, but now we have separate srcs
and dsts arrays so it's not needed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Now that everything is converted over, switch to separate src/dst
arrays.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
RA was manually fiddling with regs to copy over the parallel copy code,
which has to be done in a different way, but if we switch this all over
at once it shouldn't be a problem.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Also change the indexing in ir3_delayslots, so it's finally sane! To do
this we also have to change foreach_ssa_src_n to index srcs instead of
regs, so that the indexing stays in sync.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Initially these will shadow regs, so that we can transition things
before getting rid of regs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Don't just yeet stuff into regs without updating regs_count, etc. This
will break horribly during the transition otherwise.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
srcs and dsts will be in separate arrays, so we need everything creating
it to give a separate source and dest max count.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Right now they are basically the same, but in the future they will
append to different arrays.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
This fixes an annoying mismatch in the indices between foreach_ssa_src_n
and ir3_delayslots(), and lets us remove a bunch of other special cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Catch the mistake fixed in the previous commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
We happened to not clone any SSA instructions, but we will once address
instructions start counting as SSA. Fix this oversight.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Instructions that operate on an array read the previous state of the
array, modify it, and write a new array, at least conceptually before
RA. Previously the same register specified the previous state and acted
as the new state, but this meant that it was both a source and
destination which meant that it was getting in the way of splitting up
sources and destinations. Break out the source into a separate register,
and use the new tied-src infrastructure to share code with a6xx atomics.
With this, there are basically no more special cases for arrays in RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Previously this was hard-coded for a6xx atomic instructions. However
we'll need a way for array destinations to point to the source with the
previous value of the array when we split them up. This is conceptually
the same as tied source/destinations for a6xx atomics, except that array
writes sometimes won't have a previous value to point to. So move this
into the IR so that it can be more dynamic. As a bonus we can move the
knowledge of a6xx atomics out of RA, where it's out-of-place, and into
the a6xx-specific code that creates them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
|
|
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10424>
|
|
Fixes INSTR_INVALID_PC faults when a shader ends on a 16MB boundary.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11551>
|
|
Initial implementation missed various fields that derive from the
primitive topology. This patch fixes 3DSTATE_RASTER/3DSTATE_SF,
3DSTATE_CLIP and 3DSTATE_WM (gen7.x) emission in the dynamic case.
Fixes: f6fa4a80000 ("anv: add support for dynamic primitive topology change")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4924
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11379>
|
|
Both our T760 machines took a dive in beautiful synchronicity last
night, were recovered early this morning.
This reverts commit 854d93f73d6064a13ddc13dddf74c8c760cda1d4.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11555>
|
|
v2: and remove it from iris_memobj_create_from_handle ... (Nanley)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4969
Fixes: 772dc50d162 ("iris: hook up resource creation from memory object")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11552>
|
|
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4874
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11362>
|
|
Validation layers should warn you about this
(VUID-VkBindBufferMemoryInfo-size-01037) but this would be useful for
zink debugging.
Requested by Zmike.
v2: Also check memoryOffset (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11542>
|
|
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
Right now the accumulator-clearing move emitted by the generator for
Wa_14010017096 inherits the SWSB field from the previous instruction.
This can lead to redundant synchronization, or possibly more serious
issues if the previous instruction had a TGL_SBID_SET SWSB
synchronization mode. Take the SWSB synchronization information from
the IR.
Fixes: a27542c5ddec8 ("intel/compiler: Clear accumulator register before EOT")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
on TGL+.
This is unlikely to have had any negative side effect on the original
TGL, but will lead to issues on XeHP+ if the software scoreboard pass
isn't able to synchronize the accumulator writes.
Fixes: a27542c5ddec8 ("intel/compiler: Clear accumulator register before EOT")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
hazards on XeHP+.
In cases where an in-order instruction is overwriting a register
previously read by another in-order instruction, drop the dependency
iff the previous read is guaranteed to have occurred from the same
in-order pipeline. This should only have an effect on XeHP+ since
previous Xe platforms only had one in-order FPU pipeline.
The previous workaround we were using for this treated all ordered
read dependencies as write dependencies to avoid noise from our
simulation environment. Relative to our previous workaround this
improves performance of GFXBench5 gl_tess by ~7% on a DG2 system
among other single-digit percentual FPS improvements.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
The hardware fails to provide the expected data coherency guarantees
for accumulator registers when accessed from multiple FPU pipelines.
Fix this by tracking implicit accumulator accesses just like we do for
regular GRF registers, but instead of adding synchronization
annotations for any dependency we only do it for dependencies with a
pipeline mismatch, since the hardware should be able to guarantee
proper synchronization for matching pipelines.
Note that this workaround handles RaW and WaW dependencies in addition
to the WaR dependencies described in the hardware bug report even
though cross-pipeline RaW accumulator dependencies should be extremely
rare, since chances are the hardware will also hang if we ever hit
such a condition. This only affects XeHP+, since all FPU instructions
are executed as a single in-order pipeline on earlier Xe platforms.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
This change reduces the precision of the scoreboard data structure for
accumulator registers, because the rules determining the aliasing of
accumulator registers are non-trivial and poorly documented (e.g. acc0
overlaps the storage of acc1 when the former is accessed with an
integer type). We could implement those rules but it wouldn't have
any practical benefit since we currently only use acc0-1, and for the
most part we can rely on the hardware's accumulator dependency
tracking. Instead make our lives easier by representing it as a
single register.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
As required by HSDES:14013363432.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11543>
|
|
In the CI, we have such devices, and this message is printed many
hundreds of times. This results in a useless spam which makes it
difficult to see real issues.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11543>
|
|
This just allows picking crocus without having to set the env var.
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11353>
|
|
This fixes an issue where one context only creates buffers while another
context only destroys buffers. Only the creating context can release its
buffers and the destroying context only turns them into zombie buffers.
This fix makes the creating context release its zombie buffers.
It's not a plot from an apocalyptic movie.
Fixes: e014e3b6be6 "mesa: don't count buffer references for the context that created them"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4840
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11514>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
|
|
this was stopping the screen from being cleaned up as well
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
|
|
this is no longer used
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
|
|
this is now handled by gallium, so the codepath can be dropped
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
|