summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ci: Make a simple little bare-metal fastboot mode for db410c.Eric Anholt2020-03-1114-39/+335
| | | | | | | | | | | | | | | | | This supports powering up the device (using an external tool you provide based on your particular lab), talking over serial to wait for the fastboot prompt, and then booting a fastboot image on a target device. I was previously relying on LAVA for this, but that ran afoul of corporate policies related to the AGPL. However, LAVA wasn't doing too much for us, given that gitlab already has a job scheduler and tagging and runners. We were spending a lot of engineering on making the two systems match up, when we can just have gitlab do it directly. Lightly-reviewed-by: Kristian H. Kristensen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4076> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4076>
* ci: Fix installation of firmware for db410c's nic.Eric Anholt2020-03-111-1/+3
| | | | | | | | The debian firmware package doesn't actually contain it, costing us a minute of boot time waiting for it to show up. Lightly-reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4076>
* ci: Print the renderer/version that our dEQP invocation is using.Eric Anholt2020-03-111-0/+20
| | | | | | | This is useful for sanity checking how the driver loads. Lightly-reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4076>
* intel/compiler: fix cmod propagation optimisationsYevhenii Kolesnikov2020-03-112-9/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Knowing following: - CMP writes to flag register the result of applying cmod to the `src0 - src1`. After that it stores the same value to dst. Other instructions first store their result to dst, and then store cmod(dst) to the flag register. - inst is either CMP or MOV - inst->dst is null - inst->src[0] overlaps with scan_inst->dst - inst->src[1] is zero - scan_inst wrote to a flag register There can be three possible paths: - scan_inst is CMP: Considering that src0 is either 0x0 (false), or 0xffffffff (true), and src1 is 0x0: - If inst's cmod is NZ, we can always remove scan_inst: NZ is invariant for false and true. This holds even if src0 is NaN: .nz is the only cmod, that returns true for NaN. - .g is invariant if src0 has a UD type - .l is invariant if src0 has a D type - scan_inst and inst have the same cmod: If scan_inst is anything than CMP, it already wrote the appropriate value to the flag register. - else: We can change cmod of scan_inst to that of inst, and remove inst. It is valid as long as we make sure that no instruction uses the flag register between scan_inst and inst. Nine new cmod_propagation unit tests: - cmp_cmpnz - cmp_cmpg - plnnz_cmpnz - plnnz_cmpz (*) - plnnz_sel_cmpz - cmp_cmpg_D - cmp_cmpg_UD (*) - cmp_cmpl_D (*) - cmp_cmpl_UD (*) this would fail without changes to brw_fs_cmod_propagation. This fixes optimisation that used to be illegal (see issue #2154) = Before = 0: linterp.z.f0.0(8) vgrf0:F, g2:F, attr0<0>:F 1: cmp.nz.f0.0(8) null:F, vgrf0:F, 0f = After = 0: linterp.z.f0.0(8) vgrf0:F, g2:F, attr0<0>:F Now it is optimised as such (note change of cmod in line 0): = Before = 0: linterp.z.f0.0(8) vgrf0:F, g2:F, attr0<0>:F 1: cmp.nz.f0.0(8) null:F, vgrf0:F, 0f = After = 0: linterp.nz.f0.0(8) vgrf0:F, g2:F, attr0<0>:F No shaderdb changes Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2154 Signed-off-by: Yevhenii Kolesnikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3348> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3348>
* pan/bi: Fix swizzle for second argument to ST_VARYAlyssa Rosenzweig2020-03-111-0/+1
| | | | | | | | Off-by-one. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Implement nir_op_ffmaAlyssa Rosenzweig2020-03-112-1/+2
| | | | | | | | We have native FMA which works for graphics usage (unlike Midgard where it's really reserved for compute for various reasons), let's use it. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Add dead code elimination passAlyssa Rosenzweig2020-03-114-1/+67
| | | | | | | Now that we have liveness analysis, we can cleanup the IR considerably. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Add liveness analysis passAlyssa Rosenzweig2020-03-113-0/+99
| | | | | | | | Now that all the guts are shared with Midgard, it's just a matter of wiring it in. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Add bi_max_temp helperAlyssa Rosenzweig2020-03-111-0/+7
| | | | | | | | Instead of trying to reindex all the times, just be okay with consistent but sparse indices, then figuring out the max index is easy enough. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Add bi_next/prev_op helpersAlyssa Rosenzweig2020-03-111-0/+12
| | | | | | | From Midgard. These are surprisingly helpful. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Add bi_bytemask_of_read_components helpersAlyssa Rosenzweig2020-03-112-0/+22
| | | | | | | | Same purpose as the Midgard version, but the implementation is *dramatically* simpler thanks to our more regular IR. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* pan/bi: Paste over bi_has_argAlyssa Rosenzweig2020-03-113-1/+16
| | | | | | | While we're at it, cleanup the Midgard one. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4150>
* 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>