aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* turnip: set shader key msaa fieldJonathan Marek2020-04-221-0/+6
| | | | | | | Fixes per-sample interpolation. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4665>
* aco: coalesce v_mad's accumulator with definition's affinitiesDaniel Schürmann2020-04-221-15/+13
| | | | | | | | Totals from affected shaders: Code Size: 8922676 -> 8915192 (-0.08 %) bytes Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: use upper part of gap in register file if it is beneficial for stridingDaniel Schürmann2020-04-221-5/+16
| | | | | | | | | | | Totals from affected shaders: SGPRS: 1717288 -> 1716984 (-0.02 %) VGPRS: 1305924 -> 1304904 (-0.08 %) Code Size: 138508892 -> 138420144 (-0.06 %) bytes Max Waves: 115726 -> 115735 (0.01 %) Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: try to always find a register with stride for even sizesDaniel Schürmann2020-04-221-2/+4
| | | | | | | | | | | Totals from affected shaders: SGPRS: 1162400 -> 1162400 (0.00 %) VGPRS: 947364 -> 946960 (-0.04 %) Code Size: 98399300 -> 98399004 (-0.00 %) bytes Max Waves: 74665 -> 74682 (0.02 %) Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: stop get_reg_simple after reaching max_used_gprDaniel Schürmann2020-04-221-1/+7
| | | | | Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: refactor get_reg_simple() to return early on exact matchesDaniel Schürmann2020-04-221-25/+22
| | | | | | | in the best fit algorithm Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: don't create vector affinities for operands which are not killed or are ↵Daniel Schürmann2020-04-221-1/+1
| | | | | | | | | | | | | duplicates Totals from affected shaders: SGPRS: 825184 -> 825184 (0.00 %) VGPRS: 697640 -> 697240 (-0.06 %) Code Size: 79244104 -> 79201072 (-0.05 %) bytes Max Waves: 42388 -> 42386 (-0.00 %) Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: allocate full register for subdword definitions if HW doesn't support itDaniel Schürmann2020-04-222-5/+26
| | | | | Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: move attempt to find strided register into get_reg_simple()Daniel Schürmann2020-04-221-8/+9
| | | | | | | | | | | This simplifies code and helps some shaders Totals from affected shaders: Code Size: 51227172 -> 51202216 (-0.05 %) bytes Max Waves: 19955 -> 19948 (-0.04 %) Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: use DefInfo in more places to simplify RADaniel Schürmann2020-04-221-42/+19
| | | | | Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: create and use DefInfo struct in RADaniel Schürmann2020-04-221-45/+71
| | | | | | | for maintaining all information necessary to find a register. Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: create pseudo dummy instruction in RA to be used for live-range splitsDaniel Schürmann2020-04-221-2/+6
| | | | | Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: refactor get_reg() to also handle affinitiesDaniel Schürmann2020-04-221-60/+51
| | | | | | | | | | | This simplifies definition handling and helps a few shaders Totals from affected shaders: Code Size: 659540 -> 659376 (-0.02 %) bytes Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: refactor get_reg() to take Temp instead of RegClassDaniel Schürmann2020-04-221-85/+84
| | | | | | | | This patch also moves get_reg_specified() and get_reg_vec() before get_reg() to make use of it later. Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* aco: simplify operand handling in RADaniel Schürmann2020-04-221-72/+53
| | | | | Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
* turnip: enable VK_FORMAT_S8_UINT as stencil formatJonathan Marek2020-04-224-20/+33
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>
* turnip: improve GMEM load/store logicJonathan Marek2020-04-224-59/+89
| | | | | | | | | Determine load/store at renderpass creation time. This also fixes behavior with S8_UINT. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>
* turnip: disable depth test for S8_UINT attachmentJonathan Marek2020-04-221-6/+13
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>
* aco: implement 64-bit sgpr swapsRhys Perry2020-04-221-1/+10
| | | | | | | | | | | | | | | In our pipeline-db, helps almost exclusively Detroit: Become Human. Totals from 6726 (5.36% of 125503) affected shaders: CodeSize: 74680952 -> 74102228 (-0.77%) Instrs: 14551507 -> 14406001 (-1.00%) Cycles: 1748272436 -> 1690173104 (-3.32%) VMEM: 964671 -> 964058 (-0.06%) Copies: 1993312 -> 1847806 (-7.30%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
* aco: implement sub-dword swapsRhys Perry2020-04-223-140/+320
| | | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
* aco: add VOP3P_instructionRhys Perry2020-04-224-19/+85
| | | | | | | | | The optimizer isn't yet updated to handle this, since lower_to_hw_instr will be the only user for now. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
* aco: fix copy statistic for 64-bit vgpr constant copyRhys Perry2020-04-221-0/+1
| | | | | | | | The statistic is in units of instructions. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
* ir3: Fix bug with shaders that only exit via discardConnor Abbott2020-04-222-0/+71
| | | | | | | | | | | | | | | | discard is supposed to be a terminator, killing the thread, so that it's possible to exit main solely by a discard e.g. inside of an infinite loop. However, it currently isn't treated as a terminator in NIR due to workarounds turning it into demote (d3d-style kill) and even if that were fixed, we probably wouldn't want to treat discard_if as a jump since otherwise the scheduler wouldn't be able to schedule things around it. So, add this workaround which inserts jump instructions as necessary to guarantee that the program always terminates. This fixes a hang in dEQP-VK.graphicsfuzz.while-inside-switch, which conditionally does a discard inside an infinite loop. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4658>
* ir3: Don't double-insert the first blockConnor Abbott2020-04-221-1/+0
| | | | | | | | The first block was being added to the list twice, once here and once in emit_block(), leading to list corruption and infinite loops when trying to traverse the list of blocks backwards. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4658>
* spirv: Expand workaround for OpControlBarrier on old GLSLangDanylo Piliaiev2020-04-221-1/+5
| | | | | | | | | | | | | | | | | | | | | | | In SPIRV of compute shader in Aztec Ruins benchmark there is: OpControlBarrier %uint_1 %uint_1 %uint_0 // ControlBarrier(Device, Device, rdcspv::MemorySemantics(0)); which is an incorrect translation of glsl barrier(). GLSLang, prior to c3f1cdfa, emitted the OpControlBarrier with Device instead of Workgroup for execution scope. 2365520c covers similar case but isn't applied when execution_scope is SpvScopeDevice. Cc: <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2742 Signed-off-by: Danylo Piliaiev <[email protected]> Tested-by: Rafael Antognolli <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4660>
* iris: fail screen creation when kernel support is not thereLionel Landwerlin2020-04-221-5/+19
| | | | | | | | | | v2: Bump check to I915_PARAM_HAS_CONTEXT_ISOLATION (v4.16) (Ken) Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2803 Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4643>
* gitlab-ci: add a list of excluded tests for RADVSamuel Pitoiset2020-04-221-0/+3
| | | | | | | | Exclude WSI related tests in CI. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4656>
* meta,i965: Rip GL_EXT_texture_multisample_blit_scaled support out of metaJason Ekstrand2020-04-226-318/+1
| | | | | | | | | | | i965 is the only driver that ever linked to this code and it's been doing it in BLORP for a long time now. The only possible case where it would have fallen back to meta was for depth/stencil but that should have ended starting with 6cec618e82aa2. Rip out the dead code. Acked-by: Lionel Landwerlin <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4622>
* panfrost: Assert on unimplemented fragcoord etcAlyssa Rosenzweig2020-04-221-0/+3
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* panfrost: Fix crashes with small BOsAlyssa Rosenzweig2020-04-221-1/+1
| | | | | | | Affects Bifrost. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Assert out multiple texturesAlyssa Rosenzweig2020-04-221-0/+4
| | | | | | | Only for a moment. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Pack TEX compact instructionsAlyssa Rosenzweig2020-04-221-0/+23
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Generate TEX_COMPACT instructionAlyssa Rosenzweig2020-04-221-1/+21
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Stub out tex_compact logicAlyssa Rosenzweig2020-04-221-3/+36
| | | | | | | We may generate either texture type. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Add normal/compact/dual switch to IRAlyssa Rosenzweig2020-04-223-0/+21
| | | | | | | For tex. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Feed data register to BI_TEXAlyssa Rosenzweig2020-04-221-1/+1
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Include TEX_COMPACT f16 opcodeAlyssa Rosenzweig2020-04-221-0/+1
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Structify TEX compactAlyssa Rosenzweig2020-04-221-0/+12
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Disassemble f16 dual texAlyssa Rosenzweig2020-04-221-3/+6
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Document when dual-tex is triggeredAlyssa Rosenzweig2020-04-221-1/+5
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* pan/bi: Print tex_compact coordinatesAlyssa Rosenzweig2020-04-221-0/+7
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>
* intel/compiler: Put back saturate on [iu]add_sat opcodesKenneth Graunke2020-04-221-0/+1
| | | | | | | | I deleted one too many inst->saturate = ... lines. This one must stay. Fixes: b7c47c4f7cf ("intel/compiler: Drop nir_lower_to_source_mods() and related handling.") Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4669>
* panfrost: Align Android makefiles with recent changesRoman Stratiienko2020-04-222-0/+15
| | | | | | Signed-off-by: Roman Stratiienko <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4634>
* freedreno/ir3: Drop handling FRAG_RESULT_DEPTH writing to .zEric Anholt2020-04-211-3/+1
| | | | | | | | Since we consume NIR, we get FRAG_RESULT_DEPTH in .x. Something must have been working out for this code to not be trying to get an undefined value, but go ahead and drop it now. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4668>
* turnip: fix GMEM resolve in CmdNextSubpassJonathan Marek2020-04-211-1/+3
| | | | | | | | | | | The BLIT scissor must be set correctly for tu_store_gmem_attachment. Fixes this deqp test: dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4666>
* gitlab-ci: adapt query_traces_yaml to gitlab specific changesAndres Gomez2020-04-222-12/+15
| | | | | | | | | | | This change was missing after acf7e73be54 "(gitlab-ci: make explicit tracie is gitlab specific)". Fixes: acf7e73be54 "(gitlab-ci: make explicit tracie is gitlab specific)". Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Alexandros Frantzis <[email protected]> Reviewed-by: Rohan Garg <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4638>
* egl: simplify client/platform extension handlingEmil Velikov2020-04-214-59/+23
| | | | | | | | | | | | | | | | For GLVND reasons the client/platform extensions strings should be split. While in the non GLVND case they're one big string. Currently we handle this distinction at run-time for not obvious reason. Adding additional code and complexity. Swap those with a few well placed #if USE_LIBGLVND guards. As a side result this removes a minor memory leak due to the concatenation in the non GLVND case. Signed-off-by: Emil Velikov <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4491>
* mesa/gallium: do not use enum for bit-allocated memberErik Faye-Lund2020-04-211-1/+1
| | | | | | | | | | | The signedness of enums are undefined, so on platforms with signed enums, this isn't going to work. One such platform is Microsoft Windows. So let's just use an unsigned here instead. Fixes: b1c4c4c7f53 ("mesa/gallium: automatically lower alpha-testing") Acked-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4648>
* util/ralloc: fix ralloc alignment on Win64Jesse Natalie2020-04-211-0/+4
| | | | | Acked-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4648>
* intel/compiler: Drop nir_lower_to_source_mods() and related handling.Kenneth Graunke2020-04-214-123/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think we're unanimous in wanting to drop nir_lower_to_source_mods. It's a bit of complexity to handle in the backend, but perhaps more importantly, would be even more complexity to handle in nir_search. And, it turns out that since we made other compiler improvements in the last few years, they no longer appear to buy us anything of value. Summarizing the results from shader-db from this patch: - Icelake (scalar mode) Instruction counts: - 411 helped, 598 hurt (out of 139,470 shaders) - 99.2% of shaders remain unaffected. The average increase in instruction count in hurt programs is 1.78 instructions. - total instructions in shared programs: 17214951 -> 17215206 (<.01%) - instructions in affected programs: 1143879 -> 1144134 (0.02%) Cycles: - 1042 helped, 1357 hurt - total cycles in shared programs: 365613294 -> 365882263 (0.07%) - cycles in affected programs: 138155497 -> 138424466 (0.19%) - Haswell (both scalar and vector modes) Instruction counts: - 73 helped, 1680 hurt (out of 139,470 shaders) - 98.7% of shaders remain unaffected. The average increase in instruction count in hurt programs is 1.9 instructions. - total instructions in shared programs: 14199527 -> 14202262 (0.02%) - instructions in affected programs: 446499 -> 449234 (0.61%) Cycles: - 5253 helped, 5559 hurt - total cycles in shared programs: 359996545 -> 360038731 (0.01%) - cycles in affected programs: 155897127 -> 155939313 (0.03%) Given that ~99% of shader-db remains unaffected, and the affected programs are hurt by about 1-2 instructions - which are all cheap ALU instructions - this is unlikely to be measurable in terms of any real performance impact that would affect users. So, drop them and simplify the backend, and hopefully enable other future simplifications in NIR. Reviewed-by: Eric Anholt <[email protected]> [v1] Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4616>