aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* panfrost: Sync Midgard/Bifrost control flowAlyssa Rosenzweig2020-03-1110-114/+70
| | | | | | | | We can move e v e n more code to be shared and let bi_block inherit from pan_block, which will allow us to use the shared data flow analysis. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* panfrost: Move liveness analysis to root panfrost/Alyssa Rosenzweig2020-03-115-189/+249
| | | | | | | This way we can share the code with Bifrost. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Subclass midgard_block from pan_blockAlyssa Rosenzweig2020-03-119-87/+127
| | | | | | | | Promote as much as we feasibly can while keeping it Midgard/Bifrost agnostic. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Sync midgard_block field names with BifrostAlyssa Rosenzweig2020-03-114-9/+9
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Decontextualize liveness analysis coreAlyssa Rosenzweig2020-03-111-11/+12
| | | | | | | We mostly just need the temp_count from it. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Localize `visited` trackingAlyssa Rosenzweig2020-03-112-15/+11
| | | | | | | | Instead of a property on the block, just track it within the function to minimize IR dependencies. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Implement sysvalsAlyssa Rosenzweig2020-03-112-0/+56
| | | | | | | | Now that it's all abstracted nicely with an implementation shared with Midgard, this is pretty easy to get. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Switch to panfrost_programAlyssa Rosenzweig2020-03-113-7/+4
| | | | | | | ...now that it's shared. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* panfrost: Move Midgard sysval code to common PanfrostAlyssa Rosenzweig2020-03-115-123/+160
| | | | | | | We'll use this all as-is in Bifrost. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Remove dest_override sysval argumentAlyssa Rosenzweig2020-03-111-8/+5
| | | | | | | Unused, noticed while working on porting over to Bifrost. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Decontextualize midgard_nir_assign_sysval_bodyAlyssa Rosenzweig2020-03-112-16/+18
| | | | | | | Now all sysval code should be fairly generic. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Remove indexing dependency of sysvalsAlyssa Rosenzweig2020-03-111-4/+6
| | | | | | | | | Ideally we would sync the compilers to use the same indexing scheme but that's a lot more Midgard refactoring than I have time for right now. This is good enough honestly. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Adjust sysval-related prototypesAlyssa Rosenzweig2020-03-113-14/+14
| | | | | | | | | We'd like to share this big chunk of code with Bifrost but that requires removing the compiler_context parameter... which is totally unused in fact! Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/midgard: Remove unused iteratorsAlyssa Rosenzweig2020-03-111-6/+0
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* panfrost: Promote midgard_program to panfrost/utilAlyssa Rosenzweig2020-03-117-79/+82
| | | | | | | | We'll want Bifrost to reuse the same linking mechanisms for the most part. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* gitlab-ci: build RADV in meson-i386 to avoid 32-bit build failuresSamuel Pitoiset2020-03-112-16/+24
| | | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4044> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4044>
* radv: fix 32-bits build (again)Samuel Pitoiset2020-03-111-2/+2
| | | | | | Fixes: dcfc08f5b8a ("radv/sqtt: describe begin/end command buffers with user markers") Signed-off-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4044>
* mesa: don't unroll glMultiDrawElements with user indices for galliumMarek Olšák2020-03-113-6/+18
| | | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591>
* gallium: add PIPE_CAP_DRAW_INFO_START_WITH_USER_INDICESMarek Olšák2020-03-114-0/+4
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591>
* vbo: fix vbo_copy_vertices for GL_PATCHES and adjacency primitive typesMarek Olšák2020-03-111-1/+1
| | | | | | | Fixes: 4c6323c49f1 - vbo: handle GS and tess primitive types when splitting Begin/End Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591>
* vbo: fix transitions from glVertexN to glVertexM where M < NMarek Olšák2020-03-111-1/+15
| | | | | | | Fixes: 1f6e53e2 "vbo: don't store glVertex values temporarily into exec" Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591>
* vbo: use vbo_exec_wrap_upgrade_vertex for glVertex in ATTR_UNIONMarek Olšák2020-03-111-6/+12
| | | | | | | | We can't decrease the size for glVertex before a flush, so use vbo_exec_wrap_upgrade_vertex directly. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3591>
* st/mesa: keep serialized NIR instead of nir_shader in st_programMarek Olšák2020-03-114-8/+79
| | | | | | | | | | | This decreases memory usage, because serialized NIR is more compact. The first variant is created from nir_shader for uncached shaders. All other variants are created from serialized NIR. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2909> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2909>
* gitlab-ci: Don't restrict ppc64el/s390x build jobs to gstreamer runnersMichel Dänzer2020-03-111-2/+0
| | | | | | | | | The packet runners have beefier CPUs now and don't seem to run into test timeouts anymore. Reviewed-by: Daniel Stone <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4128> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4128>
* gitlab-ci: Sort packages to install alphabeticallyAndres Gomez2020-03-113-37/+37
| | | | | | Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* gitlab-ci: Remove unneeded python3-pilkit dependencyAndres Gomez2020-03-112-2/+1
| | | | | | | | It was added with tracie, but it doesn't depend on it. Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* gitlab-ci: Fix indentation and dangerous "\" in the last multiline lineAndres Gomez2020-03-113-9/+9
| | | | | | Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* vc4: Fix query_dmabuf_modifiers mis-reporting external_only propertyChris Lord2020-03-111-1/+3
| | | | | | | | | | | vc4_screen_query_dmabuf_modifiers doesn't consider that the given format may only be supported by lowering, which only happens for external textures. Reviewed-by: Iago Toral Quiroga <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4063> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4063>
* aco: Don't store TCS outputs to LDS when we're sure that none are read.Timur Kristóf2020-03-111-0/+4
| | | | | | | | | | | | This allows us not to write an output to LDS, even if it has an indirect offset. No pipeline DB changes. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Only write TCS outputs to LDS when they are read by the TCS.Timur Kristóf2020-03-111-2/+25
| | | | | | | | | | | | | | Note that tess factors are always read at the end of the shader, so those are still always saved to LDS. Totals from affected shaders: VGPRS: 25244 -> 25164 (-0.32 %) Code Size: 1768268 -> 1690804 (-4.38 %) bytes Max Waves: 4947 -> 4953 (0.12 %) Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Store tess factors in VMEM only at the end of the shader.Timur Kristóf2020-03-111-2/+36
| | | | | | | | | | | | | | This optimizes out several superfluous stores of the tess factors, especially if the shader wrote those outputs multiple times. Pipeline DB changes on GFX10: Totals from affected shaders: SGPRS: 30384 -> 29536 (-2.79 %) Code Size: 2260720 -> 2214484 (-2.05 %) bytes Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Don't generate an if when the first part of a merged HS or GS is empty.Timur Kristóf2020-03-111-3/+10
| | | | | | | | | | | | In some cases (eg. in a few tessellation CTS tests) the VS part of a merged HS is completely empty. Let's not generate a divergent if in these cases. (LLVM also doesn't do it.) No pipeline DB changes, only affects the CTS. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* radv: Enable ACO on all stages.Timur Kristóf2020-03-111-25/+6
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Enable running TES as ES, including merged TES+GS.Timur Kristóf2020-03-111-9/+13
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* radv: Enable ACO for TES when there is no GS.Timur Kristóf2020-03-111-7/+9
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Implement loading TES inputs.Timur Kristóf2020-03-111-0/+26
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Enable streamout when TES runs on the HW VS stage.Timur Kristóf2020-03-111-1/+1
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Store TES outputs when TES runs on the HW VS stage.Timur Kristóf2020-03-111-0/+1
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Use TES output info when TES runs on the VS stage.Timur Kristóf2020-03-111-3/+15
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Setup tessellation evaluation shader variables.Timur Kristóf2020-03-111-4/+39
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* radv: Enable ACO for tessellation control shaders.Timur Kristóf2020-03-111-2/+4
| | | | | | Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Fix LS VGPR init bug on affected hardware.Timur Kristóf2020-03-111-0/+34
| | | | | | | | | | | Vega 10 and Raven have a HW bug: when the HS thread count is zero, the LS input arguments are loaded in the wrong registers. This commit works around this by using the registers where the data actually is, for the affected arguments. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Store VS outputs correctly when tessellation is used.Timur Kristóf2020-03-111-1/+9
| | | | | | | | | | | When tessellation is used, the VS runs on the HW LS stage (merged into HS on GFX9-10). This commit enables such VS to store its outputs properly in LDS so that the TCS can load them as its per-vertex inputs. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Implement tessellation control shader input/output.Timur Kristóf2020-03-112-0/+308
| | | | | | | | | | | | | | | | | | | | | | Tessellation control shaders can have per-vertex inputs, and both per-vertex and per-patch outputs. TCS can not only store, but also load their outputs. The TCS outputs are stored in RING_HS_TESS_OFFCHIP in VMEM, which is where the TES reads them from. Additionally, the are also stored in LDS to make sure they can be loaded fast when read by the TCS. Tessellation factors are always just stored in LDS. At the end of the shader, the first shader invocation reads these from LDS and writes them to RING_HS_TESS_FACTOR in VMEM, and additionally to RING_HS_TESS_OFFCHIP when they are read by the Tessellation Evaluation Shader. This implementation matches the memory layouts used by radv_nir_to_llvm. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Fix combining DS additions in the optimizer.Timur Kristóf2020-03-111-5/+8
| | | | | | | | Previously, it was calculated incorrectly for 64-bit writes and reads. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Slight fix to lds_store and lds_load.Timur Kristóf2020-03-111-9/+15
| | | | | | | | | | | This commit fixes lds_store and lds_load so that they can properly support 32 and 64-bit loads and stores; and makes them a little more reusable so they can be used by tessellation control shaders. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Refactor VS output stores in preparation for tessellation.Timur Kristóf2020-03-111-65/+23
| | | | | | | | | | This commit takes the new helpers into use by the VS output store function. This function is also where the VS outputs will be handled when the VS runs on the HW LS stage. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Refactor load_per_vertex_input in preparation for tessellation.Timur Kristóf2020-03-111-71/+47
| | | | | | | | | This commit carves out the GS per-vertex input load, and takes the new helper functions into use. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Introduce new helpers for calculating address offsets.Timur Kristóf2020-03-111-0/+88
| | | | | | | | | These helpers are going to make it unnecessary to reimplement the (almost) same address offset calculation in mulitple places. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
* aco: Introduce new VMEM load/store helpers.Timur Kristóf2020-03-111-0/+169
| | | | | | | | | These are going to be used for loading and storing inputs and outputs in various stages, such as GS, TCS and TES. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>