aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mesa: don't use bitfields in _mesa_primMarek Olšák2020-02-115-12/+4
| | | | | | | | This is better. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* mesa: remove unused _mesa_prim::is_indirectMarek Olšák2020-02-116-13/+1
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* í965: don't use _mesa_prim::is_indirectMarek Olšák2020-02-112-8/+8
| | | | | | | the vbo change only affects i965 Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: merge use_buffer_objects into vbo_CreateContext to skip the big mallocMarek Olšák2020-02-1116-72/+39
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: clean up resetting vertex attribsMarek Olšák2020-02-111-33/+19
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: also map the immediate mode buffer for readMarek Olšák2020-02-111-2/+8
| | | | | | | | | | because we read from it sometimes and we want cached reads. We can only do it with the persistent mapping, because the non-persistent mapping uses incompatible flags. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: delay flagging FLUSH_STORED_VERTICES until glEndMarek Olšák2020-02-111-4/+5
| | | | | | | Only state changes see this, which can't occur before glEnd. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: add/update unlikely statements in ATTR_UNIONMarek Olšák2020-02-111-3/+3
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: increase the size of the immediate mode buffer to decrease draw countMarek Olšák2020-02-111-1/+1
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: use FlushVertices flags properly and clear NeedFlush correctlyMarek Olšák2020-02-111-11/+30
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: fix resizing 64-bit vertex attributesMarek Olšák2020-02-111-0/+6
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: optimize resizing vertex attributes during immediate modeMarek Olšák2020-02-111-62/+53
| | | | | | | | | Just move data manually instead of copying all attributes back and forth. This increases performance by 5% for Viewperf11/Catia - first scene. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: don't store glVertex values temporarily into execMarek Olšák2020-02-112-10/+49
| | | | | | | This improves performance by 4.3% in Viewperf11/Catia, first scene. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: pass only either uint32_t or uint64_t into ATTR_UNIONMarek Olšák2020-02-113-8/+23
| | | | | | | This makes the next commit possible. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: don't set FLUSH_UPDATE_CURRENT for glVertexMarek Olšák2020-02-111-2/+3
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: keep the immediate mode buffer always mapped for simplicityMarek Olšák2020-02-113-26/+16
| | | | | | | It only unmaps when it draws with a non-persistent buffer. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: don't check ctx->NewState twice in glBeginMarek Olšák2020-02-111-3/+0
| | | | | | | _mesa_valid_to_render does it too. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: remove a funky recursive call in glBeginMarek Olšák2020-02-111-5/+1
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: interleave attrsz, attrtype, and active_sz in memoryMarek Olšák2020-02-114-55/+56
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: remove immediate mode code that doesn't do anything and simplify stuffMarek Olšák2020-02-115-53/+3
| | | | | | | no change in behavior Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: don't unmap persistent buffer mappings for glBegin/EndMarek Olšák2020-02-113-9/+41
| | | | | | | This significantly improves performance by lowering CPU overhead. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: skip FlushMappedBufferRange for glBegin/End by using a persistent mappingMarek Olšák2020-02-111-6/+16
| | | | | | | | | This is a preparation for the next commit and just isolates the removal of GL_MAP_FLUSH_EXPLICIT_BIT and other map flags that don't make sense with UNSYNCHRONIZED. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* vbo: create the immediate mode buffer only in vbo_exec_vtx_mapMarek Olšák2020-02-111-10/+0
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* mesa: import PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET handlingMarek Olšák2020-02-116-15/+21
| | | | | | | This should decrease overhead in st_update_array. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* mesa: remove FLUSH_CURRENT calls that have no effectMarek Olšák2020-02-115-11/+1
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* mesa: fix incorrect uses of FLUSH_CURRENTMarek Olšák2020-02-112-4/+4
| | | | | | | | | FLUSH_CURRENT is used to copy attributes from the vbo module to Current.Attrib. It flushes vertices too, but that's a side effect, not the intent. Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
* glx: print FPS with 2 decimal placesMarek Olšák2020-02-102-2/+2
| | | | | | | | useful if FPS is low. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3590> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3590>
* radeonsi: don't update states for the DCC MSAA bug on GFX6-7Marek Olšák2020-02-101-2/+2
| | | | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646>
* radeonsi: fix the DCC MSAA bug workaroundMarek Olšák2020-02-101-1/+1
| | | | | | Cc: 19.3 20.0 <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646>
* r600/sfn: Add some documentationGert Wollny2020-02-101-0/+69
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add .editorconfig fileGert Wollny2020-02-101-0/+2
| | | | | Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add support for SSBO load and storeGert Wollny2020-02-103-0/+99
| | | | | Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add support for atomic instructionsGert Wollny2020-02-106-0/+228
| | | | | | | v2: fix compilation with gcc-6 Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600: Make sure LLVM is not used for DRAWGert Wollny2020-02-101-0/+5
| | | | | | | | | For some reasone that is not yet clear the piglit gl-1.0-rendermode-feedback makes use of the LLVM pipe draw module and fails there with an assertion. Explicietly disabling LLVM fixes this. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add lowering UBO access to r600 specific codesGert Wollny2020-02-104-2/+115
| | | | | | | | | | r600 reads vec4 from the UBO, but the offsets in nir are evaluated to the component. If the offsets are not literal then all non-vec4 reads must resolve the component after reading a vec4 component (TODO: figure out whether there is a consistent way to deduct the component that is actually read). Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add GDS instructionsGert Wollny2020-02-104-0/+504
| | | | | Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add compute shader skeletonGert Wollny2020-02-107-0/+223
| | | | | | | | | | | This adds some very basic compute shader support. v2: fix compilation with gcc-6 v3: rebase: correct barrier intrinstic Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add VS for TCS shader skeletonGert Wollny2020-02-102-0/+27
| | | | | | | This adds the VS shader type that handles the output to tesselation shaders Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add support for geometry shaderGert Wollny2020-02-107-1/+459
| | | | | | | v2: fix compilation with gcc-6 Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: add emitVertex instructionsGert Wollny2020-02-103-0/+45
| | | | | | | More preparation for GS support Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add MemRingOut instructionsGert Wollny2020-02-103-1/+143
| | | | | | | Preparing support for Geometry shaders. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add a load GDS result instructionGert Wollny2020-02-102-0/+32
| | | | | | | This is required to read results for atomic SSBO instructions Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add lowering arrays to scratch and according instructionsGert Wollny2020-02-1010-4/+281
| | | | | | | | | Make use of the scratch space for arrays that are larger then 100 elements. Since for IO r600 is vector based, there is a bit of a scratch space waste here for arrays that use types smaller then vec4. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: add register remappingGert Wollny2020-02-1012-0/+171
| | | | | | | | | Make use of the live range evaluation to merge registers. Since the live ranges are evaluated for register indices, the algorithm is not optimal, but for most piglits up to glsl-3.3 it does the job. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: add live range evaluation for the GPRGert Wollny2020-02-1013-1/+1571
| | | | | | | | The algoritm is basically a copy of the TGSI implementation without the array bits. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add the WaitAck instructionGert Wollny2020-02-106-0/+115
| | | | | Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add the VS in and FS out vectorizationGert Wollny2020-02-109-0/+993
| | | | | | | | | Since the nir default implementation doesn't support vectorizing the VS inputs and FS outputs, additional lowering passes are added here to do just that. The work is based on the Timothy Arceri's related work. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600: enable NIR backend DEBUG flag for supported architecturesGert Wollny2020-02-103-27/+115
| | | | | | | | When NIR is enabled, a few features that are not yet supported will be explicitely disabled. Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600/sfn: Add a basic nir shader backendGert Wollny2020-02-1047-6/+12955
| | | | | | | | | | | | | This commit adds support for vertex and fragment shaders from NIR, and support for most TEX and ALU instructions. Thanks Dave Airlied for adding support for a number of ALU instructions. v2: fix compilation with gcc-6 v3: rebase: use mesa/core glsl_type_size function Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
* r600: Update state code to accept NIR shadersGert Wollny2020-02-104-24/+67
| | | | | | | v2: Correct commit message (Konstantin Kharlamov) Signed-off-by: Gert Wollny <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>