summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* virgl: fix a sync issue in virgl_buffer_transfer_extendChia-I Wu2019-07-191-62/+15
| | | | | | | | | | | | | | | | | | | | | | | | | In virgl_buffer_transfer_extend, when no flush is needed, it tries to extend a previously queued transfer instead if it can find one. Comparing to virgl_resource_transfer_prepare, it fails to check if the resource is busy. The existence of a previously queued transfer normally implies that the resource is not busy, maybe except for when the transfer is PIPE_TRANSFER_UNSYNCHRONIZED. Rather than burdening us with a lengthy comment, and potential concerns over breaking it as the transfer code evolves, this commit makes the valid_buffer_range check the only condition to take the fast path. In real world, we hit the fast path almost only because of the valid_buffer_range check. In micro benchmarks, the condition should always be true, otherwise the benchmarks are not very representative of meaningful workloads. I think this fix is justified. The recent change to PIPE_TRANSFER_MAP_DIRECTLY usage disables the fast path. This commit re-enables it as well. Signed-off-by: Chia-I Wu <[email protected]> Reviewed-by: Gurchetan Singh <[email protected]>
* virgl: rework virgl_transfer_queue_extendChia-I Wu2019-07-193-25/+24
| | | | | | | | Do not take a transfer and do the memcpy. Add a _buffer suffix to the function name to make it clear that it is only for buffers. Signed-off-by: Chia-I Wu <[email protected]> Reviewed-by: Gurchetan Singh <[email protected]>
* virgl: fix virgl_buffer_transfer_extendChia-I Wu2019-07-191-0/+1
| | | | | | | | Without setting hw_res, virgl_transfer_queue_extend never finds a match and always returns NULL. Signed-off-by: Chia-I Wu <[email protected]> Reviewed-by: Gurchetan Singh <[email protected]>
* radeonsi: initialize scissor registers etc. without clear stateMarek Olšák2019-07-191-1/+1
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: return success from vi_dcc_clear_level to simplify callersMarek Olšák2019-07-193-28/+26
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: fix compute-based culling regression in 1ce52c1e373Marek Olšák2019-07-191-1/+1
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: fix VGT_PRIMITIVE_TYPE programmingMarek Olšák2019-07-191-1/+3
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: enable Wave32 for vertex, geometry, and tessellation shadersMarek Olšák2019-07-191-0/+5
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: add debug options to enable/disable Wave32Marek Olšák2019-07-192-1/+35
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: add as_ngg variant for TES as ES to select Wave32/64Marek Olšák2019-07-194-15/+32
| | | | | | | Legacy GS has to use Wave64, so TES before GS has to use Wave64 too. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: implement Wave32Marek Olšák2019-07-1915-71/+144
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: use 32-bit wavemasks for Wave32Marek Olšák2019-07-194-16/+43
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: create the LLVM builder in ac_llvm_context_initMarek Olšák2019-07-194-17/+15
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: create the LLVM module for Wave32 or Wave64 in ac_llvm_context_initMarek Olšák2019-07-194-7/+10
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* ac/rtld: add support for Wave32Marek Olšák2019-07-198-5/+21
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: add Wave32 LLVM target machineMarek Olšák2019-07-192-1/+20
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: initial Wave32 support in LLVM build helpersMarek Olšák2019-07-194-13/+21
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi: assume that selector != NULL for compute shadersMarek Olšák2019-07-191-14/+6
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: remove what appears to be legacy compute codeMarek Olšák2019-07-191-35/+6
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: remove si_program::use_code_object_v2Marek Olšák2019-07-192-6/+3
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: add si_shader_selector into si_computeMarek Olšák2019-07-194-81/+57
| | | | | | | | Now we can assume that shader->selector is always set. This will simplify some code. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: set threadgroup size to 0 for threadgroups with only 1 waveMarek Olšák2019-07-191-3/+3
| | | | | | | This has no effect on Wave64. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: set as_ngg for GS prologMarek Olšák2019-07-192-5/+9
| | | | | | | as_ngg is required by Wave32. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: remove the disable_ngg optionMarek Olšák2019-07-193-6/+2
| | | | | | | because legacy VS hangs. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: combine hw edgeflags with user edgeflags for correct behaviorMarek Olšák2019-07-194-19/+73
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: deduplicate code for esvert_lds_sizeMarek Olšák2019-07-191-6/+16
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: simplify a streamout loop in gfx10_emit_ngg_epilogueMarek Olšák2019-07-191-7/+6
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: don't use MALLOC for outputsMarek Olšák2019-07-191-9/+2
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: clean up ESGS ring size computationMarek Olšák2019-07-192-24/+11
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: fix unnecessary LDS overallocation for NGG GSMarek Olšák2019-07-192-8/+2
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: don't compile the GS copy shader if it's 100% not neededMarek Olšák2019-07-192-8/+12
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: set GE_CTNL.PACKET_TO_ONE_PA for NGGMarek Olšák2019-07-193-27/+27
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: update a tunable max_es_verts_base for NGGMarek Olšák2019-07-193-7/+12
| | | | | | | We have to fix the computation so as not to break quads. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: implement ARB_post_depth_coverageMarek Olšák2019-07-194-2/+8
| | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* radeonsi: fix leaked compute shader NIRMarek Olšák2019-07-191-0/+1
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: save the enable_nir option in the shader cache correctlyMarek Olšák2019-07-191-5/+6
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi/gfx10: enable SDMAMarek Olšák2019-07-191-2/+0
| | | | | | | no changes since gfx9 for buffers Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: use llvm.amdgcn.writelaneMarek Olšák2019-07-191-2/+6
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* ac: fix shader clock on LLVM 9Marek Olšák2019-07-191-2/+3
| | | | | | | | | | | | | | | | Probably relevant commit: commit dd32dc3f72ec99b1794d62c74d2beb3b60468d50 Author: Stanislav Mekhanoshin <[email protected]> Date: Tue Jul 9 03:10:18 2019 +0000 [AMDGPU] Always use s_memtime for readcyclecounter Differential Revision: https://reviews.llvm.org/D64369 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365431 91177308-0d34-0410-b5e6-96231b3b80d8 Reviewed-by: Samuel Pitoiset <[email protected]>
* radeon/vcn: adding engine type for new fw interfaceBoyuan Zhang2019-07-193-2/+5
| | | | | | Signed-off-by: Boyuan Zhang <[email protected]> Reviewed-by: Leo Liu <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* radeonsi: use the correct buffer size in si_vid_clear_bufferMarek Olšák2019-07-191-1/+1
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Acked-by: Samuel Pitoiset <[email protected]>
* mesa: add EXT_dsa glEnabledIndexedEXTPierre-Eric Pelloux-Prayer2019-07-192-0/+74
| | | | | | | | | | | | The implementation uses _mesa_ActiveTexture to change the active texture unit and then reset it. It causes an unnecessary _NEW_TEXTURE_STATE but: - adding an index argument to _mesa_set_enable causes a lot of changes (~140 callers) - enable_texture (called by _mesa_set_enable) might cause a _NEW_TEXTURE_STATE anyway. Reviewed-by: Marek Olšák <[email protected]>
* mesa: add EXT_dsa glGetTextureLevelParameter*vEXT functionsPierre-Eric Pelloux-Prayer2019-07-195-2/+71
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: add EXT_dsa gl(Copy)Texture(Sub)Image1D/2D/3DEXT functionsPierre-Eric Pelloux-Prayer2019-07-198-20/+878
| | | | | | | | | | | | | | | | | | | Added functions: - glTextureImage1DEXT - glTextureImage2DEXT - glTextureImage3DEXT - glTextureSubImage1DEXT - glTextureSubImage3DEXT - glCopyTextureImage1DEXT - glCopyTextureImage2DEXT - glCopyTextureSubImage1DEXT - glCopyTextureSubImage2DEXT - glCopyTextureSubImage3DEXT - glGetTextureImageEXT All but the last one can be compiled in a display list. Reviewed-by: Marek Olšák <[email protected]>
* mesa: move lookup_texture_ext_dsa up in teximage.cPierre-Eric Pelloux-Prayer2019-07-191-63/+60
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: pass gl_texture_object as arg to not depend on statePierre-Eric Pelloux-Prayer2019-07-191-28/+32
| | | | | | This will allow to use the same functions for EXT_dsa implementation. Reviewed-by: Marek Olšák <[email protected]>
* mesa: refactor get_texture_image to remove duplicate codePierre-Eric Pelloux-Prayer2019-07-191-50/+32
| | | | | | | | Move shared code in a new function (_get_texture_image) and use it instead of duplicating the same lines. Will be also used by the EXT_dsa functions (GetTextureImageEXT and GetMultiTexImageEXT). Reviewed-by: Marek Olšák <[email protected]>
* pipe-loader: use radeonsi for MM if amdgpu dri is usedJeremy Newton2019-07-191-0/+9
| | | | | | | | | | The amdgpu dri is used for the closed source AMD driver. Since this driver does not implement multimedia, we fall back to radeonsi in mesa to do multimedia. This corrects the dri driver name for when it is set to amdgpu. Reviewed-by: Michel Dänzer <[email protected]> (v1) Signed-off-by: Jeremy Newton <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
* egl: drop incorrect pkg-config file for glvndEric Engestrom2019-07-201-18/+10
| | | | | | | | | | | | | | | | | With b01524fff05eef66e8cd ("meson: don't build libGLES*.so with GLVND") we dropped the incorrect pkg-config files for GLES*. Since then, the glvnd issue of its missing files has become painfully apparent, since it break the build for everyone using glvnd. NVIDIA has had a fix for a few years now, but has yet to accept it: https://github.com/NVIDIA/libglvnd/pull/86 Since the breakage is already there, let's clean up everything on our side while we wait for NVIDIA to accept the fix. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* docs: simplify `Fixes:` git commandEric Engestrom2019-07-191-1/+3
| | | | | Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Eric Engestrom <[email protected]>