aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* radv,ac/nir: lower deref operations for shared memorySamuel Pitoiset2019-11-292-22/+45
| | | | | | | | | | | | | | | | | This shouldn't introduce any functional changes for RadeonSI when NIR is enabled because these operations are already lowered. pipeline-db (NAVI10/LLVM): SGPRS: 9043 -> 9051 (0.09 %) VGPRS: 7272 -> 7292 (0.28 %) Code Size: 638892 -> 621628 (-2.70 %) bytes LDS: 1333 -> 1331 (-0.15 %) blocks Max Waves: 1614 -> 1608 (-0.37 %) Found this while glancing at some F12019 shaders. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* aco: fix a couple of value numbering issuesDaniel Schürmann2019-11-291-11/+18
| | | | | | Fixes: 3a20ef4a3299fddc886f9d5908d8b3952dd63a54 'aco: refactor value numbering' Reviewed-by: Rhys Perry <[email protected]>
* aco: don't split live-ranges of linear VGPRsDaniel Schürmann2019-11-291-4/+11
| | | | | | Fixes: 93c8ebfa780ebd1495095e794731881aef29e7d3 'aco: Initial commit of independent AMD compiler' Reviewed-by: Rhys Perry <[email protected]>
* aco: implement global atomicsRhys Perry2019-11-292-0/+107
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: improve FLAT/GLOBAL schedulingRhys Perry2019-11-295-14/+30
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: don't enable store_global for helper invocationsRhys Perry2019-11-294-0/+8
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: fix SADDR with FLAT on GFX10Rhys Perry2019-11-291-1/+1
| | | | | | | | The reference guide is incorrect and SADDR is actually used with FLAT on GFX10. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: fix assembly of FLAT/GLOBAL atomicsRhys Perry2019-11-291-1/+1
| | | | | | | They can take both a definition and data operand Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: fix GFX10 opcodes for some global/flat atomicsRhys Perry2019-11-291-6/+6
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: improve WAR hazard workaround with >64bit storesRhys Perry2019-11-291-9/+15
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: add v_nop inbetween exec write and VMEM/DS/FLATRhys Perry2019-11-291-5/+8
| | | | | | | | LLVM and the proprietary compiler seem to do this Fixes: b01847bd9 ("aco/gfx10: Fix mitigation of VMEMtoScalarWriteHazard.") Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: fix incorrect cast in parse_wait_instr()Rhys Perry2019-11-291-1/+1
| | | | | | | s_waitcnt is SOPP, not SOPK Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: fix i2i64Rhys Perry2019-11-291-2/+6
| | | | | | Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler') Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* aco: propagate p_wqm on an image_sample's coordinate p_create_vectorRhys Perry2019-11-291-9/+12
| | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2156 Fixes: 93c8ebfa780 ('aco: Initial commit of independent AMD compiler') Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
* etnaviv: remove dead codeChristian Gmeiner2019-11-291-3/+0
| | | | | | | | | | ptiled is always NULL so the if statement is useless. CoverityID: 1415572 Fixes: b9627765303 ("etnaviv: rework compatible render base") CC: <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: handle integer case for GENERIC_ATTRIB_SCALEChristian Gmeiner2019-11-291-1/+5
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: fix R10G10B10A2 vertex format entriesChristian Gmeiner2019-11-291-4/+4
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: use NORMALIZE_SIGN_EXTENDChristian Gmeiner2019-11-291-1/+1
| | | | | | | | | | | | | | | | | | | The blob driver does something like this for all vertex formats: if (normalize) { if (OPENGL_ES30) val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_SIGN_EXTEND; else val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_ON; } else { val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_OFF; } As there is no way to get to that information in gallium we always assume OPENGL_ES30. Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: fix integer vertex formatsChristian Gmeiner2019-11-291-24/+24
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* i965: update Makefile.sources for perf changesJonathan Gray2019-11-291-2/+0
| | | | | | | | | | | | | | brw_performance_query_metrics.h was removed in 134e750e16bfc53480e0bba6f0ae3e1d2a7fb87c and brw_performance_query.h was removed in 8ae6667992ccca41d08884d863b8aeb22a4c4e65 remove reference to these files from Makefile.sources Signed-off-by: Jonathan Gray <[email protected]> Fixes: 134e750e16bfc53480e0 ("i965: extract performance query metrics") Fixes: 8ae6667992ccca41d088 ("intel/perf: move query_object into perf") Reviewed-by: Eric Engestrom <[email protected]>
* panfrost: Make sure we reset the damage region of RTs at flush timeBoris Brezillon2019-11-293-1/+23
| | | | | | | | | | | | | | | | | We must reset the damage info of our render targets here even though a damage reset normally happens when the DRI layer swaps buffers. That's because there can be implicit flushes the GL app is not aware of, and those might impact the damage region: if part of the damaged portion is drawn during those implicit flushes, you have to reload those areas before next draws are pushed, and since the driver can't easily know what's been modified by the draws it flushed, the easiest solution is to reload everything. Reported-by: Carsten Haitzler <[email protected]> Fixes: 65ae86b85422 ("panfrost: Add support for KHR_partial_update()") Cc: <[email protected]> Signed-off-by: Boris Brezillon <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]>
* gallium: Fix the ->set_damage_region() implementationBoris Brezillon2019-11-293-4/+35
| | | | | | | | | | | | | | BACK_LEFT attachment can be outdated when the user calls KHR_partial_update() (->lastStamp != ->texture_stamp), leading to a damage region update on the wrong pipe_resource object. Let's delay the ->set_damage_region() call until the attachments are updated when we're in that case. Reported-by: Carsten Haitzler <[email protected]> Fixes: 492ffbed63a2 ("st/dri2: Implement DRI2bufferDamageExtension") Cc: <[email protected]> Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* zink: silence coverity errorErik Faye-Lund2019-11-291-1/+1
| | | | | | | | Coverity doesn't know that we always have coordinates if we have lod. To avoid annoying errors, let's just zero-initialize this. CoverityID: 1455202 Reviewed-by: Dave Airlie <[email protected]>
* zink: error-check right variableErik Faye-Lund2019-11-291-1/+1
| | | | | | | That's not the value we just allocated... CoverityID: 1455177 Reviewed-by: Dave Airlie <[email protected]>
* zink: avoid NULL-derefErik Faye-Lund2019-11-291-2/+1
| | | | | | | | Same story as the previous two commits; these functions dereference the memory they are pointed at. We can't do that. CoverityID: 1455180 Reviewed-by: Dave Airlie <[email protected]>
* zink: avoid NULL-derefErik Faye-Lund2019-11-291-2/+1
| | | | | | | | Similar to the previous commit, pipe_resource_reference also dereference the memory pointed at. Let's avoid it. CoverityID: 1455198 Reviewed-by: Dave Airlie <[email protected]>
* zink: avoid NULL-derefErik Faye-Lund2019-11-291-2/+1
| | | | | | | | | zink_render_pass_reference will dereference the memory 'dst' points at, which can't really go well. All we want to do here is to increase the reference-count, so let's use a different helper for that instead. CoverityID: 1455200 Reviewed-by: Dave Airlie <[email protected]>
* zink: handle calloc-failureErik Faye-Lund2019-11-291-0/+2
| | | | | | | | In case we fail to allocate the context, we should notice and fail gracefully. CoverityID: 1455193 Reviewed-by: Dave Airlie <[email protected]>
* zink: do not try to destroy NULL-fenceErik Faye-Lund2019-11-291-1/+1
| | | | | | | | destroy_fence doesn't handle NULL-pointers gracefully. So let's avoid hitting that code-path, by simply returning NULL early here instead. CoverityID: 1455179 Reviewed-by: Dave Airlie <[email protected]>
* zink: delete query rather than allocating a new oneErik Faye-Lund2019-11-291-1/+1
| | | | | | | | | | It seems I had some fat fingers when writing this function, and I accidentally ended up allocating a new query and immediately trying to delete an uninitialized pool instead of just deleting the pool of the query that was passed. CoverityID: 1455196 Reviewed-by: Dave Airlie <[email protected]>
* zink: fix crash when restoring sampler-statesErik Faye-Lund2019-11-293-1/+3
| | | | | | | | | | | | When I changed to heap-allocated sampler-objects, I missed the code-path that restores sampler-states after the blitter; it needs an array of pointers, not an array of VkSampler objects to behave. This fixes spec@arb_texture_cube_map@copyteximage for me. Signed-off-by: Erik Faye-Lund <[email protected]> Fixes: 5ea787950f6 ("zink: heap-allocate samplers objects") Reviewed-by: Dave Airlie <[email protected]>
* zink: reject invalid sample-countsErik Faye-Lund2019-11-291-0/+2
| | | | | | | | | Vulkan only allows power-of-two sample counts. We already kinda checked for this, but forgot to validate the result in the end. Let's check the result and error properly. Signed-off-by: Erik Faye-Lund <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* zink: use true/false instead of TRUE/FALSEErik Faye-Lund2019-11-291-16/+16
| | | | Reviewed-by: Dave Airlie <[email protected]>
* st/mesa: unmap pbo after updating cacheErik Faye-Lund2019-11-291-2/+2
| | | | | | | Unmapping first leads to accessing an invalid pointer. So let's switch these lines around. Reviewed-by: Marek Olšák <[email protected]>
* panfrost: Fix gnu-empty-initializer build errors.Vinson Lee2019-11-283-5/+5
| | | | | | Fixes: a24d6fbae60c ("meson: Add -Werror=gnu-empty-initializer to MSVC compat args") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
* radv: Fix timeline semaphore refcounting.Bas Nieuwenhuizen2019-11-281-9/+4
| | | | | | | | | | | | Was totally broken ... Removed two if(point) {} because point is always non-NULL and we were counting on that already for counting, since we NULL our references to semaphores without active point earlier. Fixes: 4aa75bb3bdd "radv: Add wait-before-submit support for timelines." Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2137 Reviewed-by: Samuel Pitoiset <[email protected]>
* winsys/amdgpu: avoid double simple_mtx_unlock()Jonathan Gray2019-11-281-1/+0
| | | | | | | | | | | | | | pthread_mutex_unlock() when unlocked is documented by posix as being undefined behaviour. On OpenBSD pthread_mutex_unlock() will call abort(3) if this happens. This occurs in amdgpu_winsys_create() after cb446dc0fa5c68f681108f4613560543aa4cf553 winsys/amdgpu: Add amdgpu_screen_winsys Signed-off-by: Jonathan Gray <[email protected]> Cc: 19.2 19.3 <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
* util/driconfig: print ATTENTION if MESA_DEBUG=silent is not setMarek Olšák2019-11-281-7/+22
| | | | | | unix-bytebenchmark refuses to run if the driver prints ATTENTION to stderr. Acked-by: Eric Engestrom <[email protected]>
* glsl: handle max uniform limits with lower_const_arrays_to_uniformsTapani Pälli2019-11-283-5/+40
| | | | | | | Fixes arb_tessellation_shader-large-uniforms Piglit test. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* radv: Unify max_descriptor_set_size.Bas Nieuwenhuizen2019-11-281-14/+15
| | | | | | | | They were out of sync. Besides syncing, lets ensure they never diverge again. Fixes: 8d2654a4197 "radv: Support VK_EXT_inline_uniform_block." Reviewed-by: Samuel Pitoiset <[email protected]>
* amd/llvm: Refactor ac_build_scan.Bas Nieuwenhuizen2019-11-281-40/+51
| | | | | | | | Split out the logic for exclusive scans into a separate function that makes clear what it does instead of having this opaque 60 line if. Reviewed-by: Samuel Pitoiset <[email protected]>
* radv: add more constants to avoid using magic numbersSamuel Pitoiset2019-11-282-6/+14
| | | | | | | Trivial. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* ac/llvm: convert src operands to pointers if necessarySamuel Pitoiset2019-11-281-0/+11
| | | | | | | | | | | | | To avoid generating invalid LLVM IR when both operands don't have the same type. This might happen when performing pointer comparisons with SPIRV 1.4. Fixes invalid LLVM IR for: dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.variable_pointers_ssbo_equal dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.variable_pointers_ssbo_not_equal Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* llvmpipe: add initial nir supportDave Airlie2019-11-2810-20/+125
| | | | | | | | | | This adds the hooks between llvmpipe and the gallivm NIR code, for compute and fragment shaders. NIR support is hidden behind LP_DEBUG=nir for now until all the intergration issues are solved Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add swizzle support where one channel isn't defined.Dave Airlie2019-11-282-12/+35
| | | | | | | NIR doesn't always define all output channels relies on outputs being memset to 0 Reviewed-by: Roland Scheidegger <[email protected]>
* gallium: add nir lowering passes for the draw pipe stages. (v2)Dave Airlie2019-11-287-27/+547
| | | | | | | | This transforms the NIR shaders like the TGSI transforms worked. v2: fix some nir info requirements, use 32-bit bools Acked-by: Roland Scheidegger <[email protected]>
* draw: add nir info gathering and building supportDave Airlie2019-11-285-26/+63
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add nir->llvm translation (v2)Dave Airlie2019-11-285-0/+3142
| | | | | | | | | This add the initial implementation of the NIR->LLVM conversion for llvmpipe NIR support. v2: lower bool to int32 in nir not llvm Acked-by: Roland Scheidegger <[email protected]>
* gallivm: add selection for non-32 bit typesDave Airlie2019-11-281-1/+8
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add cttz wrapperDave Airlie2019-11-282-0/+17
| | | | | | this will be used to write find_lsb support Reviewed-by: Roland Scheidegger <[email protected]>