summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-06-23freedreno/isa: Convert to srcs/dstsConnor Abbott9-111/+112
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
2021-06-23ir3: Add srcs/dsts arrays to ir3_instructionConnor Abbott2-1/+10
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>
2021-06-23ir3/legalize: Construct branch properlyConnor Abbott1-1/+2
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>
2021-06-23ir3: Add separate src/dst count in ir3_instrConnor Abbott10-49/+64
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>
2021-06-23ir3: Split ir3_reg_create() into ir3_{src,dst}_create()Connor Abbott9-95/+132
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>
2021-06-23ir3: Make ir3_instruction::address a normal registerConnor Abbott10-69/+44
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>
2021-06-23ir3: Add is_reg_special()Connor Abbott2-1/+12
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
2021-06-23ir3: Validate that ir3_register::instr is correctConnor Abbott1-0/+3
Catch the mistake fixed in the previous commit. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469>
2021-06-23ir3: Update ir3_register::instr when cloning instructionsConnor Abbott1-0/+2
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>
2021-06-23ir3: Split read-modify-write array dests in twoConnor Abbott10-59/+56
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>
2021-06-23ir3: Make tied sources/destinations part of the IRConnor Abbott8-31/+57
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>
2021-06-23amd/ci: add hawaii-specific skip and fail listsDaniel Schürmann2-0/+48
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10424>
2021-06-23pan/mdg: Add 16 bytes of padding to the end of shadersIcecream951-0/+6
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>
2021-06-23anv: fix emitting dynamic primitive topologyTapani Pälli7-126/+295
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>
2021-06-23Revert "ci: disable panfrost t760 jobs"Daniel Stone1-2/+2
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>
2021-06-23iris: take a reference to memobj bo in iris_resource_from_memobjTapani Pälli1-2/+2
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>
2021-06-23radeonsi: disable ngg culling on llvm < 12Pierre-Eric Pelloux-Prayer1-1/+3
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>
2021-06-23anv: bound checks buffer memory binding in debug buildsLionel Landwerlin1-0/+2
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>
2021-06-23intel/fs: Implement Wa_14013745556 on TGL+.Francisco Jerez1-0/+17
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
2021-06-23intel/fs: Fix synchronization of accumulator-clearing W/A move on TGL+.Francisco Jerez1-3/+6
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>
2021-06-23intel/fs: Teach IR about EOT instruction writing the accumulator implicitly ↵Francisco Jerez1-1/+2
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>
2021-06-23intel/fs: Add SWSB dependency annotations for cross-pipeline WaR data ↵Francisco Jerez1-4/+9
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>
2021-06-23intel/fs: Implement Wa_22012725308 for cross-pipe accumulator data hazard.Francisco Jerez1-1/+50
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>
2021-06-23intel/fs: Track single accumulator in scoreboard lowering pass.Francisco Jerez1-16/+9
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>
2021-06-23intel/fs/xehp: Assert that the compiler is sending all 3 coords for cubemaps.Francisco Jerez2-2/+11
As required by HSDES:14013363432. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
2021-06-23freedreno/ci: Use TU_IGNORE_CONFORMANCE_WARNING to reduce warningsMatt Turner2-0/+4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11543>
2021-06-23tu: Provide a toggle to avoid warnings about unsupported devicesMatt Turner1-2/+10
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>
2021-06-23meson/crocus: add prefer-crocus option.Dave Airlie3-0/+12
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>
2021-06-23mesa: unreference zombie buffers when creating buffers to lower memory usageMarek Olšák1-2/+19
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>
2021-06-23crocus: fix batch state bo leakDave Airlie1-0/+1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
2021-06-23crocus: fix vertex buffer leak on screen end.Dave Airlie1-0/+2
this was stopping the screen from being cleaned up as well Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
2021-06-23crocus: free context state properly.Dave Airlie1-1/+2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547>
2021-06-23zink: ci updatesMike Blumenkrantz1-16/+0
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23zink: remove primconvertMike Blumenkrantz3-18/+0
this is no longer used Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23zink: export supported primitive restart typesMike Blumenkrantz2-10/+10
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>
2021-06-23zink: export supported prim typesMike Blumenkrantz2-9/+10
this is now handled by gallium, so the related codepaths can be dropped Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23zink: export 8bit index buffer support based on extension presenceMike Blumenkrantz2-12/+10
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>
2021-06-23zink: export PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTARTMike Blumenkrantz2-3/+3
gallium will now handle unsupported restart index rewriting, so this codepath can be removed Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23gallium: add a pipe cap for determining driver support for prim type in restartsMike Blumenkrantz9-10/+16
this is another prim type bitmask which will trigger automatic draw rewriting to a direct draw any time a prim-restart draw occurs with a prim type that is not supported by the driver for prim restart, even if that prim type is supported for normal drawing the default is set to all prim types to preserve existing functionality, and PrimitiveRestartForPatches is now explicitly set to false because no driver supports it Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23gallium: add a pipe cap for performing automatic prim type conversionMike Blumenkrantz8-4/+24
drivers can now export a bitmask of the primitive types they support, and all others will be automatically be rewritten the default value is set to all primitive types supported to preserve existing behavior Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23gallium: handle automatic 8bit -> 16bit index buffer rewritesMike Blumenkrantz2-3/+9
this is based on PIPE_FORMAT_R8_UINT format support Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23gallium: add a pipe cap to rewrite index buffers for draws using a non-fixed ↵Mike Blumenkrantz8-2/+39
restart index for drivers that set it, this now automatically handles restart index rewriting by running draws through primconvert when necessary Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23util/primconvert: handle multidraws in primconvertMike Blumenkrantz1-1/+7
once a draw reaches primconvert, it should never be able to reach the driver until all draw operations have been converted as necessary Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23util/primconvert: handle rewriting of prim-restart draws with unsupported ↵Mike Blumenkrantz2-5/+67
primtype this is a bit more work, as the primitive restart needs to be rewritten into a multidraw, then the multidraw converted to the new primitive type and serialized back into a single draw detection is handled using a new primconvert config member, which is set to the full primtype mask by default for compatibility with existing drivers Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23util/primconvert: map index buffer before getting index translator functionMike Blumenkrantz1-10/+12
also set other local values on init using new util functions no functional changes Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23util/primconvert: handle indirect drawsMike Blumenkrantz1-7/+11
this avoids ping-ponging to the driver, which would have to call back to here anyway with the unwrapped indirect draw Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23util/prim_restart: break out draw rewriting into separate functionMike Blumenkrantz2-47/+78
this enables doing the draw rewrites without calling draw_vbo Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-23aux/draw: add a util function for reading back indirect draw paramsMike Blumenkrantz2-0/+71
the return type of this is a bit clunky because instance values can change, but it's simpler to just return the full draw info struct than to force the caller to keep pulling from arrays or whatever Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
2021-06-22ci: disable panfrost t760 jobsMike Blumenkrantz1-2/+2
these are timing out Acked-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11548>
2021-06-23crocus: Explicitly cast value to uint64_tDave Airlie1-2/+2
Ports 565a80450d28f6daa0ca8b98dad93924e712f94b from iris. Acked-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11546>