summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* panfrost: Only wallpaper if we drew somethingAlyssa Rosenzweig2019-08-011-1/+1
| | | | | | | last_tiler.gpu may be NULL at flush time despite no clear and existing jobs -- if we executed a compute-only workload. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Adjust shader CAPs to expose dEQP computeAlyssa Rosenzweig2019-08-011-2/+1
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Expose NIR as our PIPE_SHADER_CAP_SUPPORTED_IRSAlyssa Rosenzweig2019-08-011-1/+1
| | | | | | | We *could* expose TGSI as well -- we pipe it through tgsi_to_nir for Gallium-internal shaders anyway -- but we'd rather not. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Copy freedreno's panfrost_get_compute_paramAlyssa Rosenzweig2019-08-011-0/+70
| | | | | | | Values reported here aren't remotely correct, but it's a start to just get the entrypoint stubbed out. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Expose COMPUTE-related caps for GLES3.1Alyssa Rosenzweig2019-08-011-4/+8
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Stub out launch_gridAlyssa Rosenzweig2019-08-011-0/+13
| | | | | | Just dumps some information about the invocation for later debug. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Stub out compute CSOAlyssa Rosenzweig2019-08-014-0/+68
| | | | | | Doesn't do anything, just gets the functions there. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Implement gl_FrontFacingAlyssa Rosenzweig2019-08-014-0/+27
| | | | | | | Interestingly, this requires no compiler changes. It's just exposed as a special varying. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Add support for decoding gl_FrontFacingAlyssa Rosenzweig2019-08-012-1/+11
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* pan/decode: Use max varying index as varying buffer countAlyssa Rosenzweig2019-08-011-6/+6
| | | | | | | This allows us to decode asymmetric varyings correctly, which occurs with e.g. gl_FrontFacing. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* iris: add support for gl_ClipVertex in tess eval shadersTimothy Arceri2019-08-014-2/+37
| | | | | | Required for OpenGL compat support. Reviewed-by: Kenneth Graunke <[email protected]>
* iris: add support for gl_ClipVertex in geometry shadersTimothy Arceri2019-08-014-21/+57
| | | | | | This will enable us to support the OpenGL compat profile. Reviewed-by: Kenneth Graunke <[email protected]>
* nir: Stop whacking gl_FrontFacing to a system valueJason Ekstrand2019-08-015-7/+7
| | | | | | | | | | We have a cap bit for gallium and a GLSL compiler flag to control this. Just trust what GLSL gives us and stop forcing it. In order for this to be safe, we have to advertise another cap in some of the gallium drivers. Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* panfrost: Implement panfrost_set_shader_buffers callbackAlyssa Rosenzweig2019-08-012-0/+18
| | | | | | | Just copy over the passed SSBO for now. Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gallium/util: Add util_set_shader_buffers_mask helperAlyssa Rosenzweig2019-08-012-0/+42
| | | | | | | | | | Conceptually follows util_set_vertex_buffers_mask but for SSBOs. v2: Fix missing ~ when clearing mask. Adjust mask behaviour to match freedreno/v3d when buffer == NULL. Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* kmsro: move entry points from etnaviv to kmsroJonathan Marek2019-08-011-3/+3
| | | | | | | | | These drivers are kmsro drivers so they should be part of the kmsro #if This fixes missing imx_drm driver when building with only freedreno+kmsro Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: remove software-properties-commonEmil Velikov2019-08-011-6/+5
| | | | | | | | | | | Currently we use the python package to manage repositories. At the same time we also do that by hand - since it's a trivial echo to a file. Stay consistent, remove the package and manage things manually. Acked-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* st/mesa: fix MSVC compile breakageBrian Paul2019-08-011-2/+2
| | | | Trivial.
* virgl: Enable depth_clamp by lowering if the host is new enough.Gert Wollny2019-08-012-1/+8
| | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* gallium: Make PIPE_CAP_DEPTH_CLIP_DISABLE a tri-state value and use itGert Wollny2019-08-012-1/+6
| | | | | | | | | | | Use value "2" to signal that lowering is needed and supported and enable it accordingly. v2: - Note in CAP description that this lowering currently requires TGSI - use "true" instead of GL_TRUE (both Erik) Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: Signal state changes when depth_clamp is emulatedGert Wollny2019-08-011-1/+25
| | | | | | | | | | | | | v1 implemented by Erik Faye-Lund <[email protected]> v2: - Add GS and TES - fix constants state update flags (Erik) v3: don't update rasterizer when depth_clamp is lowered (Erik) v4: Correct NewDepthClamp and also set flags for NewClipControl (Erik) v5: Also set shader_has_one_variant property acording to possible depth_clamp lowering (Marek) Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: Add depth clamping to rasterizer codeGert Wollny2019-08-012-6/+39
| | | | | | | | | | implemented by Erik Faye-Lund <[email protected]> v2: Use current depth range values for clamping (Erik) v3: fix scons-win64 build Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: Tie depth_clamp code into other shaders (GS and TES)Gert Wollny2019-08-013-1/+36
| | | | | | | | | | | | v2: Use file scope defined depth_range_state in common v3: - don't use the one_shader_variant property, as this is not correct (Marek) - also use tests on available shader stages to enable depth_clamp lowering v4: Don't use key.st, use st directly (Marek) Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: Tie depth_clamp lowering into the FSGert Wollny2019-08-013-0/+18
| | | | | | | | | v1 implemented by Erik Faye-Lund <[email protected]> v2: Use different call for FS v3: Use file scope defined depth_range_state Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: Tie depth clamp lowering in to the VP codeGert Wollny2019-08-014-0/+32
| | | | | | | | | | | | v1: implemented by Erik Faye-Lund <[email protected]> v2: Add handling of the ARB_clip_control depth mode v3: Move depth_range_state to file scope and remove training zeros (Erik) v4: - don't use the one_shader_variant property, as this is not correct (Marek) - also use tests on available shader stages to enable depth_clamp lowering V5: Don't use key.st, use st directly (Marek) Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: add tgsi-lowering code for depth-clampErik Faye-Lund2019-08-014-0/+451
| | | | | | | | | | | | | | | | | This is a TGSI pass that lowers depth-clamping into shader-operations, by replacing the depth-value with 0 (a z-coordinate of zero will always pass the OpenGL depth test conditions), and using a dedicated varying to interpolate the real depth-value instead. Finally we replace the depth-output in the fragment shader. v1 implemented by Erik Faye-Lund <[email protected]> v2: Add support for handling depth clip mode, and refactor code v3: - Rename *_vs functions to *_last_vertex_stage (Erik) - Use 0.0 depth to avoid clipping (Erik) v4: Fix inversion of bool value for clip control property Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: replace boolean declarations by boolGert Wollny2019-08-011-2/+2
| | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
* Revert "softpipe: Don't draw when rasterizer_discard is set"Gert Wollny2019-08-011-3/+0
| | | | | | | | | This was too aggressive and breaks TF (Ilia) This reverts commit 4ee638cd7826e8a4bed76f51c7b73395a2fcdbbc. Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* docs: reword meson instructionsEric Engestrom2019-08-011-7/+12
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
* travis: drop unnecessary Meson option for MacOSEric Engestrom2019-08-011-4/+1
| | | | | | Those are already their default values on MacOS. Signed-off-by: Eric Engestrom <[email protected]>
* intel/vec4: Drop all of the 64-bit varying codeJason Ekstrand2019-07-314-200/+47
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel/fs: Drop all of the 64-bit varying codeJason Ekstrand2019-07-312-363/+139
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel: Use NIR to lower 64-bit varying accessJason Ekstrand2019-07-311-6/+11
| | | | Reviewed-by: Matt Turner <[email protected]>
* nir/lower_io: Add an option to lower 64-bit varyingsJason Ekstrand2019-07-312-15/+118
| | | | Reviewed-by: Matt Turner <[email protected]>
* docs: Update Platforms and Drivers page with more comprehensive information.Jorge Natz2019-07-311-7/+23
| | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* nir: use common deref has indirect code in scratch lowering.Dave Airlie2019-08-011-15/+1
| | | | | | This doesn't seem to need it's own copy here. Reviewed-by: Jason Ekstrand <[email protected]>
* nir: remove explicit nir_intrinsic_index_flag valuesEric Engestrom2019-07-311-2/+2
| | | | | | | | | | | | These were left after a rebase and happen to make NIR_INTRINSIC_SWIZZLE_MASK == NIR_INTRINSIC_SRC_ACCESS, which is how it was noticed. Fixes: 6f20643b471a851c936f ("nir: Allow qualifiers on copy_deref and image instructions") Cc: Connor Abbott <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* state_tracker: Free Labels for querry and tranform_feedbackYevhenii Kolesnikov2019-07-312-0/+2
| | | | | | | Memory leaks were observed on iris with GL_KHR_debug. Signed-off-by: Yevhenii Kolesnikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* iris: Skip emitting 3DSTATE_INDEX_BUFFER if possibleKenneth Graunke2019-07-313-11/+27
| | | | | | | We were emitting 3DSTATE_INDEX_BUFFER on every indexed draw, even if back-to-back draws referred to the same index buffer. This improves drawoverhead scores in the DrawElements cases by about 10%, by giving us even more minimal batches.
* st/dri: simplify dri_get_egl_image by reusing dri2_format_tableMike Blumenkrantz2019-07-313-42/+24
| | | | | | | | | | this makes dri2_get_mapping_by_fourcc accessible from dri_helpers.h and does a direct lookup on the fourcc id to match the pipe format v2 (Ken): Allow map to be NULL, use img->texture->format. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* lima: enable lower_bitops in ppirErico Nunes2019-07-311-0/+1
| | | | | | | | | The mali pp doesn't support integers and some nir_algebraic optimizations may result in ops that are not easily lowerable to floats, so disable optimizations resulting in bitops. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* nir/algebraic: rename lower_bitshift to lower_bitopsErico Nunes2019-07-314-9/+9
| | | | | | | | | | | | | Optimizations that insert bitshift or bitwise operations should not be applied on GPUs that don't support integer operations. The .lower_bitshift could be used to control the bitshift related ones, but there was also one bitwise optimization uncovered. Since only lima and freedreno use this option and the use case is that no bit operations are wanted, let's rename it to .lower_bitops and use it to control all bitops related optimizations. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* lima/ppir: lower fdot in nir_opt_algebraicErico Nunes2019-07-315-80/+5
| | | | | | | | | Now that we have fsum in nir, we can move fdot lowering there. This helps reduce ppir complexity and enables the lowered ops to be part of other nir optimizations in the optimization loop. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Qiang Yu <[email protected]>
* nir/algebraic: add new fsum ops and fdot loweringErico Nunes2019-07-313-0/+11
| | | | | | | | | | | | | | | The Mali400 pp doesn't implement fdot but has fsum3 and fsum4, which can be used to optimize fdot lowering. fsum2 is not implemented and can be further lowered to an add with the vector components. Currently lima ppir handles this lowering internally, however this happens in a very late stage and requires a big chunk of code compared to a nir_opt_algebraic lowering. By having fsum in nir, we can reduce ppir complexity and enable the lowered ops to be part of other nir optimizations in the optimization loop. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* lima/ppir: refactor texture code to simplify schedulerErico Nunes2019-07-315-60/+7
| | | | | | | | | | | | | | | | | | | The 'varying fetch' pp instruction deals only with coordinates, and 'texture fetch' deals only with the sampler index. Previously it was not possible to clearly map ppir_op_load_coords and ppir_op_load_texture to pp instructions as the source coordinates were kept in the ppir_op_load_texture node, making this harder to maintain. The refactor is made with the attempt to clearly map ppir_op_load_coords to the 'varying fetch' and ppir_op_load_texture to the 'texture fetch'. The coordinates are still temporarily kept in the ppir_op_load_texture node as nir has both sampler and coordinates in a single instruction and it is only possible to output one ppir node during emit. But now after lowering, the sources are transferred to the (always) created ppir_op_load_coords node, and it should be possible to directly map them to their pp instructions from there onwards. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Qiang Yu <[email protected]>
* lima/ppir: lower texture projectionErico Nunes2019-07-311-0/+5
| | | | | | | | | | | | | | | | | | | | | | Lower texture projection in ppir using nir_lower_tex and nir_lower_tex. This will insert a mul with the coordinate division before the load varying. Even though the lima pp supports projection in the load varying instruction while loading the coordinates (from a register or a varying), it requires that both the coordinates and projector be components in a single register. nir currently handles them in separate ssa, and attempting to merge them manually may end up in worse code than just doing the coordinate division manually. So for now let's just lower the projection to add support for it in lima. In the future, an optimization pass may be implemented in lima to ensure that both coords and projector come in the same register, then this lowering may be disabled and in this case lima may use the built-in projection and save the mul instruction from lowering. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Qiang Yu <[email protected]>
* scons: Fix random_r check.Vinson Lee2019-07-311-1/+1
| | | | | | | Fixes: 597bddad47e8 ("scons: Test for random_r()") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* Revert "st/dri: simplify dri_get_egl_image by reusing dri2_format_table"Kenneth Graunke2019-07-313-25/+42
| | | | | | This reverts commit c47af8b95f26bd83efe322ff0baa52263fb8625e. It causes dEQP-EGL regressions. (I think there is an easy fix, but we'll have it go through review again.)
* pan/midgard: Don't special case inline_constantAlyssa Rosenzweig2019-07-317-30/+13
| | | | | | Another constant source of bugs. Ain't that special. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* pan/midgard: De-special-case branchingAlyssa Rosenzweig2019-07-316-30/+11
| | | | | | It's not that special. Signed-off-by: Alyssa Rosenzweig <[email protected]>