summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-03-31broadcom/compiler: try to fill up delay slots after unconditional branchHEADmasterIago Toral Quiroga1-4/+48
If we have an unconditional branch then we can try to fill up its delay slots with the initial instructions of its successor block by copying them into the delay slots and adjusting the branch offset to skip the copied instructions. total nops in shared programs: 365640 -> 364471 (-0.32%) nops in affected programs: 15416 -> 14247 (-7.58%) helped: 462 HURT: 0 Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9918>
2021-03-31broadcom/compiler: try to fill up delay slots after a branch instructionIago Toral Quiroga1-18/+119
For this we do something similar to what we do with thrsw where we try to move the branch instruction earlier so the previous instructions execute in the delay slots of the branch. Generally, we can do this with any instruction except: - If the instruction reads a uniform: since our branches do as well and uniforms come from an ordered FIFO stream. - If the instruction writes flags, since our branch instruction will probably read them. - If the instruction is in the delay slots of another thread switch, branch, or unifa write, which is disallowed. total instructions in shared programs: 13648140 -> 13613972 (-0.25%) instructions in affected programs: 2209552 -> 2175384 (-1.55%) helped: 6765 HURT: 0 Instructions are helped. total max-temps in shared programs: 2318687 -> 2318436 (-0.01%) max-temps in affected programs: 5046 -> 4795 (-4.97%) helped: 152 HURT: 0 Max-temps are helped. total inst-and-stalls in shared programs: 13680494 -> 13646326 (-0.25%) inst-and-stalls in affected programs: 2220394 -> 2186226 (-1.54%) helped: 6765 HURT: 0 Inst-and-stalls are helped. total nops in shared programs: 399818 -> 365640 (-8.55%) nops in affected programs: 127311 -> 93133 (-26.85%) helped: 6765 HURT: 0 Nops are helped. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9918>
2021-03-31broadcom/compiler: add a NOP count stat to shader-dbIago Toral Quiroga5-2/+25
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9918>
2021-03-31broadcom/compiler: dump instruction index when failing to pack instructionsIago Toral Quiroga1-1/+1
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9918>
2021-03-31lavapipe: fail out if spirv->nir failsDave Airlie1-0/+8
Just fail out earlier and assume a feature is missing. Fixes a crash in validation layer tests Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9937>
2021-03-31lavapipe: only reference pCounterBuffers if non-NULLDave Airlie1-2/+8
Fixes crash in validation layer tests. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9937>
2021-03-30glsl: Initialize parcel_out_uniform_storage members.Vinson Lee1-3/+16
Fix defects reported by Coverity Scan. uninit_member: Non-static class member buffer_block_index is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member ubo_byte_offset is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member shader_type is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member next_sampler is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member next_bindless_sampler is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member next_image is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member next_bindless_image is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member next_subroutine is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member field_counter is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member current_var is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member explicit_location is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member record_array_count is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member record_next_sampler is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member record_next_image is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member record_next_bindless_sampler is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member record_next_bindless_image is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member targets is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member shader_samplers_used is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member shader_shadow_samplers is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member num_bindless_samplers is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member num_bindless_images is not initialized in this constructor nor in any functions that it calls. Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7910>
2021-03-30zink: use cached memory for all resources when possibleMike Blumenkrantz2-24/+86
this massively speeds up memory access across the driver, specifically for pbo-related operations it does require that mapped memory is manually invalidated/flushed, however, and we also need to manually align host-visible memory to be able to do that Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9884>
2021-03-30zink: track coherent resource objectsMike Blumenkrantz2-0/+2
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9884>
2021-03-30mesa: Remove redundant gl_config::sampleBuffersAdam Jackson6-7/+4
This is just !!samples. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Stop tracking visual rating in gl_configAdam Jackson2-7/+1
We never create non-conformant configs, and we can predict slow-or-not purely from the accum-buffer-ness of the config. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Remove the pretense of aux buffer supportAdam Jackson16-94/+10
This might be nice to hook up at some point, but it's doing nothing at the moment and it's not clear to me that it belongs as GL state instead of winsys state. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Remove unused gl_config::levelAdam Jackson3-4/+1
This is the (GLX) framebuffer overlay level, and it's never set to anything interesting. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Remove transparency state from struct gl_configAdam Jackson2-19/+10
We never set this to anything interesting, and this is really winsys state not GL state anyway. Nota bene: __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE is set to GLX_NONE instead of the GLX_DONT_CARE we looked like we were doing before. This is to preserve backward compatibility with older (technically, all current) X servers, which when building their fbconfigs initialize a field named 'transparentPixel' _twice_, and the second time from __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, but then uses 'transparentPixel's value for GLX_TRANSPARENT_TYPE. Which, GLX_DONT_CARE isn't a valid value for that, so glx-fbconfig-sanity fails among much else. This is harmless, in that I don't think any DRI driver has ever wired this up (I can't find any evidence in r100 or mga history) and certainly none that we can currently load have this working. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Remove the texture-from-pixmap state from struct gl_configAdam Jackson2-21/+13
This never varies at all, let alone per-config. GLX does read these values out though so hardwire the values in a different place. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30mesa: Remove misc pbuffer attributes from struct gl_configAdam Jackson2-13/+5
pbuffers aren't a first-class object in mesa, they're just funnily-named framebuffers. It's thus somewhat silly to track this state separately when it's effectively identical to GL_MAX_RENDERBUFFER_SIZE, and there's never been a DRI driver that's ever set these values to anything interesting. Drop them from mesa (but leave the tokens defined for compatibility). Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30dri: Fold attribMap into the codeAdam Jackson1-80/+59
This table is mostly a mapping into struct gl_config, which is about to get radically simplified, so we're going to need code to compute values here instead of just looking up fields in a struct. Keeping the __ATTRIB bit is somewhat ugly, but we'll expand it back out after the gl_config changes settle. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30dri: Explicitly handle all the config attributesAdam Jackson1-4/+29
The code is broken elsewhere and requires that the attrib map actually be large enough. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9817>
2021-03-30Remove Scons leftoversMatt Turner8-125/+8
Fixes: 6e6cd7d93cc54fc8c279 ("scons: Remove.") Reviewed-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9738>
2021-03-30ci: Disable panfrost g52Matt Turner1-2/+2
The runners appear to be down at the moment. Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4538 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9930>
2021-03-30ci: skip pipeline_barrier tests that currently crash on RADVTony Wasserka2-0/+34
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4511 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9893>
2021-03-30frontends/omx/h265: search entire dpb listBoyuan Zhang1-1/+0
When more than 1 idr frames have been added to dpb list, there might be 2 frames with same poc in the dpb list. In this case, driver needs to search the entire dpb list in order to get newly added reference frame with given poc Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9881>
2021-03-30radeon/vcn: release si buffer for encoding at the end.Ruijing Dong1-4/+5
Signed-off-by: Ruijing Dong <Ruijing.Dong@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com> Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9882>
2021-03-30compiler/glsl: avoid null-pointer derefErik Faye-Lund1-3/+4
When we encounter a bindless image here, lower_deref returns a NULL-pointer, and calling record_images_used will try to dereference that NULL-pointer. So let's dig out the var from the source instruction instead of the result of the lowering. Fixes: 5910c938a29 ("nir/glsl: gather bitmask of images used by program") Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9895>
2021-03-30zink: remove zink_create_fence()Mike Blumenkrantz3-26/+6
merge this down into batch state creation to keep fence file complexity down Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: also check for device lost reset on flushMike Blumenkrantz1-4/+9
if there's a reset callback available, call that instead of cycling Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: break out queue submit into separate functionsMike Blumenkrantz2-29/+47
to be used with async submission Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: move VkQueue to batch objectMike Blumenkrantz4-4/+5
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: remove zink_fence_init()Mike Blumenkrantz3-14/+3
contents moved to more correct places Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: make a local screen pointer in zink_flushMike Blumenkrantz1-3/+4
no functional changes Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: store context to batch stateMike Blumenkrantz2-0/+3
this will be used for post-flush device resets when device is lost Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: rename init_batch_state to get_batch_stateMike Blumenkrantz1-4/+4
more sensible, no functional changes Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: assume fence has already completed if a batch state isn't foundMike Blumenkrantz1-12/+3
we're not going to be waiting on fences from the future, so if we can't find a fence then it must have completed Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: explicitly reset a couple more batch state membersMike Blumenkrantz1-0/+3
no functional changes at this time Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: add locking for fence resourcesMike Blumenkrantz3-0/+6
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: split fence finish funcMike Blumenkrantz3-16/+22
one part of this will be used to handle tc mechanics, the other part is for internal use Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: add function for checking whether a batch is doneMike Blumenkrantz2-0/+33
this is like wait_on_batch, but without the waiting Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: add locking for batch statesMike Blumenkrantz3-3/+17
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: manually invoke cpu detection during screen initMike Blumenkrantz1-0/+4
ensure this gets populated before using it Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: add locking for resource mapsMike Blumenkrantz2-37/+44
vulkan prohibits multiple maps on a resource, so these have to be locked down Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30zink: add locking for descriptor poolsMike Blumenkrantz2-3/+16
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
2021-03-30v3dv: fix unused valueJuan A. Suarez Romero1-5/+4
Do not assign to a variable that won't be used. Fixes CID#1468098 "Unused value (UNUSED_VALUE)". Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9910>
2021-03-30broadcom/compiler: fix unused valueJuan A. Suarez Romero1-2/+2
Do not assign to a variable that won't be used. Fixes CID#1451708 and CID#1451710 "Unused value (UNUSED_VALUE)". Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9910>
2021-03-30docs: do not try to copy missing fileErik Faye-Lund1-1/+0
This file was removed, but the inclusion in the docs build was missed. Fixes: 6e6cd7d93cc ("scons: Remove.") Acked-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9913>
2021-03-30radv: do not fixup DCC after compute color resolves if DCC stores enabledSamuel Pitoiset1-1/+2
With compressed DCC writes supported, the image should still be compressed after resolving using the compute path. Fixes various dEQP-VK.api.copy_and_blit.core.resolve_image.* failures with RADV_DEBUG=forcecompress on GFX10. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9908>
2021-03-30lavapipe: report correct value for maxTexelBufferElementsErik Faye-Lund1-1/+1
We already have a pipe_cap for this, so let's use that to report the correct value. Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9891>
2021-03-30ci/v3d: run full GLES3 and GLES31 testsuiteJuan A. Suarez Romero1-2/+0
There is margin in the time budget to run the full GLES3 and GLES31 CTS instead of only 50%. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9899>
2021-03-30ci/broadcom: update piglit expected resultsJuan A. Suarez Romero3-4/+1
Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9899>
2021-03-30iris: disable dynamic VAO fastpath on GFX version 9Marcin Ślusarz1-0/+7
Enabling this fast path, while making CPU side simpler (and thus reducing driver's CPU overhead), forces us to generate multiple VERTEX_BUFFER_STATE packets pointing to the same buffer, but with slightly shifted BufferStartingAddress. This is fine on GFX version >= 11 and < 8, but on version 8 and 9, thanks to internal details of the VF cache, vertex data from each VERTEX_BUFFER_STATE is cached separately and this results in a lot of cache misses. Disabling this fast path restores previous performance levels. On my SKL GT2 machine this improves performance in: - GLB27 Egypt offscreen by 37% - GLB27 TRex offscreen by 22% - gfxbench5 Manhattan offscreen by 1.75% - gfxbench5 Manhattan31 offscreen by 1.9% - gfxbench5 Aztec Ruins high by 2.3% In Intel performance CI on GFX version 9 it improves performance in: - gfxbench5 Manhattan offscreen by 1.65% - gfxbench5 Aztec Ruins normal offscreen by 1.33% Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3277 Fixes: 42842306d3c ("mesa,st/mesa: add a fast path for non-static VAOs") Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9857>
2021-03-30gallium: add PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATHMarcin Ślusarz3-1/+6
Fixes: 42842306d3c ("mesa,st/mesa: add a fast path for non-static VAOs") Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9857>