Commit graph

31383 commits

Author SHA1 Message Date
Mike Blumenkrantz
5f6cd7bba9 zink: be a little more precise about query types in one conditional
just for readability, no functional changes

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8516>
2021-02-05 13:31:16 +00:00
Mike Blumenkrantz
d45ef517c6 zink: unify shader image unbind codepath
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8780>
2021-02-05 12:42:32 +00:00
Boris Brezillon
7ecb2eaf26 panfrost: Don't add the tiler BO when it's not accessed
Only batches involving the tiler block need to add the tiler heap to the
list of accessed BOs. While at it, clarify who's accessing this heap.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Icecream95 <ixn@disroot.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8822>
2021-02-05 11:10:43 +01:00
Boris Brezillon
66125c429f panfrost: Fix a polygon list corruption in the multi-context case
The polygon list is written by tiler jobs and read by fragment ones,
and nothing should re-use the heap until the fragment job is done.
4fec6c9448 ("panfrost: Add the tiler heap to fragment jobs") fixed
this for the !multi-context case by adding the heap BO to fragment job.
But the tiler heap is shared accross contexts, and vertex/tiler+fragment
job submission is done through 2 separate ioctls, meaning that
vertex/tiler and fragment jobs from 2 different context might be
interleaved.

Add a lock at the device level to ensure tiler/vertex+fragment jobs are
submitted sequentially, with no other jobs using the same tiler heap
in-between.

Cc: mesa-stable
Fixes: d8deb1eb6a ("panfrost: Share tiler_heap across batches/contexts")
Reported-by: Icecream95 <ixn@disroot.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Icecream95 <ixn@disroot.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8822>
2021-02-05 11:10:43 +01:00
Vinson Lee
4654650d6b nv50/ir: Initialize BindArgumentsPass member sub in constructor.
Fix defect reported by Coverity.

Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member sub is not initialized in
this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7229>
2021-02-04 20:17:59 -08:00
Eric Anholt
3a5bdd6cf7 freedreno/a6xx: Add support for glDrawTransformFeedback().
It's exposed with ARB_tf2, which we claimed support for.  All the KHR-GL33
TF tests pass for me locally except for no_errors, which I have some
outstanding fixes for with khronos.  Our CI build seems to be having some
issue with exceptions inside of deqp.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8843>
2021-02-04 14:49:59 -08:00
Eric Anholt
5009450413 freedreno/a6xx: Skip guessing VSC size with indirect TF draw counts.
Fixes an assertion failure when we try to figure out how many bits to
store the "0" draw count.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8843>
2021-02-04 14:02:12 -08:00
Danylo Piliaiev
f26b336331 freedreno/a2xx: fix scissors clamp bounds
a2xx has maximum viewport dimensions of 4096

Fixes: 6ae726b799 ("freedreno: clamp scissor bounds")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8866>
2021-02-04 19:47:11 +00:00
Eric Anholt
3aeb029728 freedreno: Drop pointless clear of used providers.
We don't reuse batches, no need to do anything special here.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8789>
2021-02-04 19:31:30 +00:00
Eric Anholt
4338cafd7f freedreno: Backport a5xx/a6xx fix for active query handling.
The batch might not have stage == FD_STAGE_BLIT set because
fd_blitter_pipe_begin was sticking the stage on some random batch (or none
at all) rather than the one that would be used in the meta operation.

What we actually wanted to be looking at was set_active_query_state(),
which is already called by util_blitter and whose state we just needed to
track.

Fixes these piglit tests on a307:
occlusion_query_meta_fragments
occlusion_query_meta_save

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8789>
2021-02-04 19:31:30 +00:00
Eric Anholt
b709efeb09 freedreno: rename batch->active_providers to query_providers_used.
It's not the set of currently active providers, it's what's been used at
all in the current batch (this is used for doing the initialization of
query providers at initial HW setup in a submit).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8789>
2021-02-04 19:31:30 +00:00
Eric Anholt
75a4386676 freedreno: Make sure that queries are disabled during shadow blits.
They shouldn't count toward occlusion queries.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8789>
2021-02-04 19:31:30 +00:00
Mike Blumenkrantz
50bac9f3fb zink: move maintenance2 extension to right file
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8862>
2021-02-04 19:23:20 +00:00
Danylo Piliaiev
6ae726b799 freedreno: clamp scissor bounds
We don't have negative scissor coords and maximum dimensions are:
 a3xx - 4096
 a4xx+ - 16384

Fixes piglit tests:
 fbo-viewport
 viewport-clamp

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/30
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8209>
2021-02-04 15:27:29 +00:00
Vinson Lee
09e421846d nvc0/ir: Initialize SchedDataCalculator members in constructor.
Fix defects reported by Coverity Scan.

uninit_member: Non-static class member score is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member prevData is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member prevOp is not initialized in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8604>
2021-02-04 04:09:28 +00:00
Vinson Lee
8f1c6f36ec nvc0/ir: Initialize NVC0LoweringPass member gpEmitAddress.
Fix defect reported by Coverity Scan.

Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member gpEmitAddress is not initialized
in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8605>
2021-02-03 19:45:15 -08:00
Dave Airlie
e41b0202c9 zink: don't pick a cpu device ever.
This goes down the list and picks the first non-cpu device, when
we merge the CI patch we should add a forcing env var in here.

Fixes: 8d46e35d1 ("zink: introduce opengl over vulkan")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8845>
2021-02-03 23:11:19 +00:00
Marek Olšák
965c6445ad winsys/amdgpu,radeonsi: add HUD counters for how much memory is wasted by slabs
Slabs always allocate the next power of two size from their pools. This
wastes memory if the size is not a power of two.

bo->base.size is overwritten because the default is the allocated power of
two size, but we need the real size to compute the wasted size in
amdgpu_bo_slab_destroy. entry_size is added to the hole in pb_slab_entry
to hold the real entry size.

Like other memory stats, no atomics are used.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8683>
2021-02-03 21:53:33 +00:00
Rob Clark
c167b773fe freedreno: Put an upper limit on VSC size
Left unchecked, an app that just did an endless series of draws could
result in VSC buffer sizes >4GB, which doesn't work out well.

This limit is semi-arbitrary (ie. it is lower than hw limit, but 32*8MB
seems a bit excessive and not a limit that you'd hit in the real world).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8842>
2021-02-03 18:35:38 +00:00
Tapani Pälli
a545fe9742 intel/perf: introduce additional ralloc context parameter
This makes it possible to use a separate ralloc context, not gl context
itself which might not be allocated with ralloc.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8805>
2021-02-03 16:37:59 +00:00
Erico Nunes
696b0ab2c9 lima: always set stride in texture descriptor
We can just always specify the stride parameter regardless of whether
an alignment was forced or not. This fixes some issues where it is not
straightforward to detect the need to specify stride by checking the
buffer width (e.g. imported dmabuf to be used as texture).

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8549>
2021-02-02 16:54:47 +00:00
Erico Nunes
ce432ac7cd lima: enable r and rg pixel formats again
Enable r and rg targets to allow r and rg so that lima exposes
GL_EXT_texture_rg.
This is notably required by programs working with textures for
video playback.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8549>
2021-02-02 16:54:47 +00:00
Erico Nunes
f17c8dc798 lima: set yuv formats as external_only
lima is not able to use yuv textures directly.
Set them as external_only so that drivers don't attempt to send yuv
planes directly as dma bufs.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8549>
2021-02-02 16:54:47 +00:00
Jérôme Glisse
6e4f7e14af nouveau: add support for SVM migrate
v2 (Ralph): don't allign address as the kernel handles that already
            support migration from GPU to system RAM
v3 (Karol): use DIV_ROUND_UP for sizes not being page aligned

Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6401>
2021-02-02 16:11:35 +00:00
Erik Faye-Lund
0e47422413 zink: wrap some long lines
These lines are very long, let's wrap them a bit.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
a7d9ac2956 zink: refactor vertex-order emitting
Using a ternary expression inside the argument list avoids some
repetition, showing that the rest of the call is the same. This increase
readability a tad.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
06e421fe5c zink: add a get_spacing-helper
Similarly to the previous commit, this makes the code a bit easier to
read.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
e240221d15 zink: add a get_primitive_mode-helper
This just makes the code a bit easier to read, where the details are
hidden slightly.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
701ade314f zink: do not insist shaders come from glsl
We don't know what shading-language our shaders come from. This
information is lost before we get here. So let's not declare that these
come from GLSL shaders, even though that's likely to be the case.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
84fd3b7709 zik: correct spir-v caps for textures and images
There's a couple of minor issues with these the way they where:

1. All shader stages can perform texturing. So let's check for textures
   instead of fragment-shader
2. Not all implementations support StorageImageExtendedFormats. We don't
   expose image support for those implementations, but we shouldn't
   enable the cap just because we're texturing.

Both of these issues can be tackled by splitting these into texturing
and images conditionals.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
7ce9c029b1 zink: only emit cap when needed
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
b6da248c0e zink: only emit SpvCapabilityDerivativeControl when needed
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
36a4b423fe zink: correct return-type for function
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
9fbacf5bcf zink: be more careful about limits when unsupported
These limits are dependent on feature caps, so let's try to thread
a bit more carefully when the cap is unsupported.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Erik Faye-Lund
5b9042577c zink: remove stale TODO
By now, I think we're fairly sure about this one ;)

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8832>
2021-02-02 16:00:37 +00:00
Andrii Simiklit
adc7f97a70 iris: don't emit IRIS_DIRTY_VF depending on trash in restart_index
The `restart_index` field can be uninitialized if `primitive_restart`
is false so we have to track `restart_index` changes
only if `primitive_restart` is true

Here is a valgrind warning:
Conditional jump or move depends on uninitialised value(s)
==52021==    at 0x6D44968: iris_update_draw_info (iris_draw.c:102)
==52021==    by 0x6D450B5: iris_draw_vbo (iris_draw.c:273)
==52021==    by 0x642FD8E: cso_multi_draw (cso_context.c:1708)
==52021==    by 0x5C434D3: st_draw_gallium (st_draw.c:271)
==52021==    by 0x5DF5F1B: _mesa_draw_arrays (draw.c:554)
==52021==    by 0x5DF68F7: _mesa_DrawArrays (draw.c:768)
==52021==    by 0x49011F2: stub_glDrawArrays (piglit-dispatch-gen.c:12181)
==52021==    by 0x11C611: piglit_display (shader_runner.c:4549)
==52021==    by 0x4994D83: process_next_event (piglit_x11_framework.c:137)
==52021==    by 0x4994E47: enter_event_loop (piglit_x11_framework.c:153)
==52021==    by 0x49939A4: run_test (piglit_winsys_framework.c:88)
==52021==    by 0x49821A9: piglit_gl_test_run (piglit-framework-gl.c:229)

v2: - don't propagate trash to state->cut_index
    (Kenneth Graunke <kenneth@whitecape.org>)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8409>
2021-02-02 13:16:07 +00:00
Boris Brezillon
470d3a3640 panfrost: Update ctx->batch when a fresh batch is requested
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:49:58 +01:00
Boris Brezillon
834bb5e54c panfrost: Add a panfrost_compile_shader() helper
This deduplicates the

   if (pan_is_bifrost())
      return bifrost_compile_shader_nir();
   else
      return midgard_compile_shader_nir();

pattern.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
89cfa4180b panfrost: Use dev->arch where appropriate
The architecture has already been extracted in panfrost_open_device()
don't do it again.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
d78f686ad1 panfrost: Rename and move pan_render_condition_check()
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
3913089d2d panfrost: Set attribs and attrib_bufs to NULL when attrib_count = 0
It's just easier to read pandecode traces when those pointers are set
to NULL for the attribute_count=0 case.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
81a21ea9cd panfrost: Only allocate the extra attribute buffer entry on Bifrost
Bifrost needs an empty attribute buffer entry to tell the prefecter it
should stop fetching attribute buffers, but Midgard doesn't have this
constraint. It's also useless to have 2 empty entries for the instance or
image case.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
63d9e412ec panfrost: Don't memset the last attribute buffer entry twice
It's already done a few lines below.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Boris Brezillon
4544d00e71 panfrost: Get rid of IS_BIFROST
Extract this information from dev->arch, and provide a helper to hide
this check.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8808>
2021-02-02 09:04:15 +01:00
Marek Olšák
b60dfa2c09 radeon: decrease the size of radeon_cmdbuf by switching prev fields to uint16
This also removes the 32-bit hole in radeon_cmdbuf.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8434>
2021-02-02 05:42:32 +00:00
Marek Olšák
34114e1dcb radeonsi: tune NGG shader culling vertex threshold for each chip
These are based on my testing and estimation.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8434>
2021-02-02 05:42:32 +00:00
Marek Olšák
ffbf3a5f8b radeonsi: simplify the NGG culling condition in si_draw_vbo
Changes:

- disallow NGG culling for GS, fast launch for tess using template args
  (GS can't do NGG culling, tess can't do fast launch)

- skip checking current_rast_prim with tessellation
  (bake the condition into ngg_cull_vert_threshold)

- use only 1 vertex count threshold for enabling NGG shader culling
  to simplify it. I think it doesn't have a big impact. The threshold
  computation depends on more parameters than just fast launch.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8434>
2021-02-02 05:42:32 +00:00
Marek Olšák
7581743510 radeonsi: set current_rast_prim at bind time for tess and GS
It doesn't have to be done in draw_vbo.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8434>
2021-02-02 05:42:32 +00:00
Mark Janes
2edfb27913 intel: combine common gather routines in INTEL_MEASURE
Anv and iris had separate, similar routines to gather intel_measure
timestamps.  Timestamps are now managed within intel_measure, allowing
those routines to be consolidated.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7354>
2021-02-01 17:24:57 -08:00
Mark Janes
d6fc72e286 intel: support secondary command buffers in INTEL_MEASURE
When a secondary command buffer is encountered, insert an event that
links to the new batch.

This commit leaves intel_measure timestamp buffer objects mmapped,
which is more efficient than mapping/unmapping several times.  With
the BOs mapped at all times, timestamp buffers can be managed directly
by intel_measure, where it will iterate over timestamps of linked
secondary buffers.

With timestamp buffers managed by intel_measure, a more efficient and
accurate check for render completion can be moved into intel_measure
from anv/iris.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7354>
2021-02-01 17:24:57 -08:00