aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glthread: handle POS vs GENERIC0 aliasingMarek Olšák2020-04-302-3/+10
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: initialize VAOs properlyMarek Olšák2020-04-303-0/+33
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track primitive restart stateMarek Olšák2020-04-305-3/+68
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track instance divisor changesMarek Olšák2020-04-303-13/+39
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track pointers and strides for Pointer & EXT_dsa attrib functionsMarek Olšák2020-04-307-43/+102
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: don't use atomics for refcounting to decrease overhead on AMD ZenMarek Olšák2020-04-302-1/+33
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: do glBufferSubData as unsynchronized upload + GPU copyMarek Olšák2020-04-304-2/+138
| | | | | | | | | | | | 1. glthread has a private upload buffer (as struct gl_buffer_object *) 2. the new function glInternalBufferSubDataCopyMESA is used to execute the copy (the source buffer parameter type is struct gl_buffer_object * as GLintptr) Now glthread can handle arbitrary glBufferSubData sizes without syncing. This is a good exercise for uploading data outside of the driver thread. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: add _mesa_InternalBind{ElementBuffer,VertexBuffers} for glthreadMarek Olšák2020-04-305-0/+62
| | | | | | Uploaded non-VBO user data will be set via these functions. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: add glInternalBufferSubDataCopyMESA for glthreadMarek Olšák2020-04-307-1/+66
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: inline vbo_context inside gl_context to remove vbo_context dereferencesMarek Olšák2020-04-306-157/+151
| | | | | | | | | | The number of lines in the disassembly of vbo_exec_api.c.o decreased by 4.5%, which roughly corresponds to a decrease in instructions for immediate mode thanks to the removal of ctx->vbo_context dereferences. It increases performance in one Viewperf11 subtest by 2.8%. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa,st/mesa: add a fast path for non-static VAOsMarek Olšák2020-04-305-0/+64
| | | | | | | | | | | | | Skip most of _mesa_update_vao_derived_arrays if the VAO is not static. Drivers need a separate codepath for this. This increases performance by 7% with glthread and the game "torcs". The reason is that glthread uploads vertices and sets vertex buffers every draw call, so the overhead is very noticable. glthread doesn't hide the overhead, because the driver thread is the busiest thread. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't update shaders on fixed-func state changes if user shaders are boundMarek Olšák2020-04-302-3/+28
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't set unnecessary program flags in _mesa_update_stateMarek Olšák2020-04-301-2/+1
| | | | | | | _NEW_PROGRAM is already set. _NEW_FRAG_CLAMP is not used by the fixed-func fragment shader. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: set _NEW_FRAG_CLAMP only when neededMathias Fröhlich2020-04-301-3/+5
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't call _mesa_update_state for _mesa_get_clamp_fragment_colorMarek Olšák2020-04-304-18/+4
| | | | | | It's not needed. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* st/mesa: Move _NEW_FRAG_CLAMP to NewFragClamp driver flag.Mathias Fröhlich2020-04-305-12/+21
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: optimize glPush/PopClientAttrib by removing malloc overheadMarek Olšák2020-04-304-137/+46
| | | | | | | | just declare all structures needed by the stack in gl_context. This improves performance by 5.6% in the game "torcs". FPS: 101.01 -> 106.73 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* freedreno/a6xx: don't set SP_FS_CTRL_REG0.VARYING for fragcoordRob Clark2020-04-301-1/+0
| | | | | | | | | | Similar change to 5785bcc8a0ff9c5072c647337bf73f696c63cbe6. It appears on a6xx and in fact this could cause varying corruption before the FS had a chance to consume the varyings from varying storage. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2838 Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4838>
* iris: don't assert on unfinished aux import in copy pathsLionel Landwerlin2020-04-303-13/+33
| | | | | | | | | | | | | | | | | After a resource is created the first command using it could be a copy command. In iris_state we finish the import on surface/view creation but we don't do that for copies. v2: Move finish call to gallium entrypoints (Ken) Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2725 Reviewed-by: Tapani Pälli <[email protected]> (v1) Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4657>
* freedreno: sync registers with envytoolsRob Clark2020-04-303-12/+24
| | | | | | | | Pull in the `SP_xS_BRANCH_COND` regs to keep the mesa and envytools copies from getting out of sync. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: more OUT_REG()Rob Clark2020-04-301-26/+41
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno: scissor vs disabled scissor micro-optRob Clark2020-04-303-3/+12
| | | | | | | | We don't need to deref and check rast state every time scissor changes, only when rast state changes. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: convert const emit to OUT_PKT()Rob Clark2020-04-302-36/+71
| | | | | | | | | This is another hot packet. This splits out each of the four cases (geom vs frag, and indirect vs inline) intentionally, to avoid some parity bit calc. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/ir3: inline const emitRob Clark2020-04-3014-619/+711
| | | | | | | | | | | | Drop vfunc callbacks for per-gen packet emit, and instead have a header that is #include'd once per gen. We'll end up with multiple copies of some of this, but since we never have multiple gen's of adreno on a single device, only one copy will be paged in (and hopefully in the I-cache for hot-paths) Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: split out const emitRob Clark2020-04-307-249/+375
| | | | | | | | | | In order to inline the const emit and drop the per-gen vfuncs to emit the correct sort of packet, we should consolidate all of the entry- points to const emit in one object file, otherwise we'll end up with multiple copies per gen. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: convert draw packet to OUT_PKT()Rob Clark2020-04-301-48/+51
| | | | | | | | | | | | | | This is one of the hotter pkt7 packets, since it is guaranteed to happen on every draw. Switch to OUT_PKT() for less driver overhead in the draw path. Slight bit of cheating for using CP_DRAW_INDX_OFFSET_0 for the first dword in all cases. Possibly *gen_header.py* could be more clever and use typedef's in the cases of bitsets like vgt_draw_initiator. But this works out because it is always the first dword. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: add OUT_PKT()Rob Clark2020-04-303-5/+97
| | | | | | | | | | | Similar to OUT_REG(), this has the benefits of: 1. No more messing up pkt size 2. Detects errors of mixing up the order of dwords in the packet 3. Optimizes to more efficient code Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: skip unnecessary MRT blend stateRob Clark2020-04-301-3/+3
| | | | | | | To lower CP overhead. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: combine sample mask into blend stateRob Clark2020-04-304-35/+102
| | | | | | | | | | | | | This gets rid of one lone register we used to emit directly in IB2 whenever blend state changes, at the expense of needing blend state variants when sample-mask changes. I think typically sample-mask should not change frequently, so this seems like a fair trade-off. To further limit the # of variants, we ignore sample-mask bits that are not relavant for the current # of samples. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: move blend-color to stateobjRob Clark2020-04-302-0/+5
| | | | | | | To reduce CP overhead for draws skipped in a bin. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: limit LRZ state emitRob Clark2020-04-302-9/+34
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: limit PROG_FB_RAST state emitRob Clark2020-04-303-2/+10
| | | | | | | | The dependency on RASTERIZER state is only when rasterizer_discard changes. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: move scissor state to stateobjRob Clark2020-04-302-2/+9
| | | | | | | To reduce CP overhead for draws skipped in a given tile. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: move const state to single stateobjRob Clark2020-04-302-19/+28
| | | | | | | | | | In practice, we end up updating all the shader stages at the same time. So collapse this into a single group. Reduces CP overhead. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: avoid unnecessary clearing VS DP stateRob Clark2020-04-302-1/+7
| | | | | | | | | If there is no (potentially unflushed) VS driver-param state, we don't need to emit a DISABLE on each frame. So avoid that to reduce CP overhead. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/a6xx: small query cleanupRob Clark2020-04-301-3/+1
| | | | | | | Don't open-code `fd6_event_write()` Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/drm: inline the thingsRob Clark2020-04-303-65/+62
| | | | | | | | | The existing structure dates back to when this code was part of libdrm, and we wanted some of this not to be exposed as ABI between libdrm and mesa. Now that this is no longer a constraint, inline things. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/drm: drop atomic refcntsRob Clark2020-04-301-2/+2
| | | | | | | | Since we dropped the async flush_queue, we no longer need the refcnts to be atomic. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4813>
* freedreno/ir3: Initialize the unused dwords of the immediates consts.Eric Anholt2020-04-301-0/+3
| | | | | | | Avoids having spurious differences (and weird values to look at!) in traces from uninitialized memory. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4824>
* Revert "anv/gen12: Temporarily disable VK_KHR_buffer_device_address (and EXT)"Jason Ekstrand2020-04-301-4/+2
| | | | | | | | | This reverts commit c61ad77cd260ce7666b257ce411e512e0ca12ec8. We now no longer have a problem with these. Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4819>
* intel/eu: Use non-coherent mode (BTI=253) for stateless A64 messagesJason Ekstrand2020-04-302-10/+39
| | | | | | | | | | We don't care about full IA coherency since we always have the opportunity in GL or Vulkan to flush the data cache. Using IA-coherent mode is likely just making A64 access slower than it needs to be. Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4819>
* pan/decode: Use correct printf modifier for long intTomeu Vizoso2020-04-301-1/+1
| | | | | | | | | | As reported by Coverity: >>> CID 1462605: API usage errors (PRINTF_ARGS) >>> Argument "p->zero5" to format specifier "%x" was expected to have type "unsigned int" but has type "unsigned long". Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4724>
* pan/decode: Check for correct unknown fieldTomeu Vizoso2020-04-301-1/+1
| | | | | | | | | | | As reported by Coverity: >>> CID 1462606: Incorrect expression (COPY_PASTE_ERROR) >>> "unk1" in "s->unk1" looks like a copy-paste error. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4724>
* panfrost: Don't leak temporary descriptors arrayTomeu Vizoso2020-04-301-0/+2
| | | | | | | | | | | As found by Coverity: >>> CID 1462596: Resource leaks (RESOURCE_LEAK) >>> Variable "descriptors" going out of scope leaks the storage it points to. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4724>
* panfrost: Emit blend descriptors on BifrostTomeu Vizoso2020-04-309-56/+200
| | | | | | Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4724>
* panfrost: Enumify bifrost blend typesAlyssa Rosenzweig2020-04-301-8/+11
| | | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4724>
* gitlab-ci: update tracie README after changes in main scriptAndres Gomez2020-04-301-11/+6
| | | | | | | | | | | v2: - Update the default location for the traces when there is no traces-db entry in the traces definition file (Alexandros). Fixes: 90a39af5f65 "(ci: Drop the git dependency in tracie)" Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Alexandros Frantzis <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4640>
* .mailmap: add an alias for Andres GomezAndres Gomez2020-04-301-0/+2
| | | | | | Reviewed-by: Erik Faye-Lund <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4739>
* .mailmap: add an alias for Iago Toral QuirogaAndres Gomez2020-04-301-0/+2
| | | | | | Reviewed-by: Erik Faye-Lund <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4739>
* ci: Add intel to shaderdb runsLionel Landwerlin2020-04-301-1/+2
| | | | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Acked-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4594>