On Tue, May 23, 2017 at 6:52 PM, Rob Clark <[email protected]> wrote: > On Mon, May 15, 2017 at 10:41 AM, Marek Olšák <[email protected]> wrote: >> From: Marek Olšák <[email protected]> >> >> for skipping mapped-buffer checking in every GL draw call >> --- >> src/gallium/docs/source/screen.rst | 1 + >> src/gallium/drivers/etnaviv/etnaviv_screen.c | 1 + >> src/gallium/drivers/freedreno/freedreno_screen.c | 1 + >> src/gallium/drivers/i915/i915_screen.c | 1 + >> src/gallium/drivers/llvmpipe/lp_screen.c | 1 + >> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + >> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + >> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + >> src/gallium/drivers/r300/r300_screen.c | 1 + >> src/gallium/drivers/r600/r600_pipe.c | 1 + >> src/gallium/drivers/radeonsi/si_pipe.c | 1 + >> src/gallium/drivers/softpipe/sp_screen.c | 1 + >> src/gallium/drivers/svga/svga_screen.c | 1 + >> src/gallium/drivers/swr/swr_screen.cpp | 1 + >> src/gallium/drivers/vc4/vc4_screen.c | 1 + >> src/gallium/drivers/virgl/virgl_screen.c | 1 + >> src/gallium/include/pipe/p_defines.h | 1 + >> 17 files changed, 17 insertions(+) >> >> diff --git a/src/gallium/docs/source/screen.rst >> b/src/gallium/docs/source/screen.rst >> index 971dc1f..871669c 100644 >> --- a/src/gallium/docs/source/screen.rst >> +++ b/src/gallium/docs/source/screen.rst >> @@ -384,20 +384,21 @@ The integer capabilities: >> * ``PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE``: The page size of sparse buffers in >> bytes, or 0 if sparse buffers are not supported. The page size must be at >> most 64KB. >> * ``PIPE_CAP_TGSI_BALLOT``: Whether the BALLOT and READ_* opcodes as well as >> the SUBGROUP_* semantics are supported. >> * ``PIPE_CAP_TGSI_TES_LAYER_VIEWPORT``: Whether ``TGSI_SEMANTIC_LAYER`` and >> ``TGSI_SEMANTIC_VIEWPORT_INDEX`` are supported as tessellation evaluation >> shader outputs. >> * ``PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX``: Whether a buffer with just >> PIPE_BIND_CONSTANT_BUFFER can be legally passed to set_vertex_buffers. >> +* ``PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION``: As the name says. > > btw, what determines if a driver can allow mapped buffers during > execution? Presumably it can't be cases where unmapping does some > sort of copy of the data? What about cache coherency? And also, > *which* buffers does this apply to? > > (This would be, I guess, sort of more useful info to put in screen.rst ;-))
I can't guarantee what will happen in all cases of mapped buffers. Generally, unsychronized mappings and mappings when the buffer is idle follow the same rules as persistent (coherent) mappings. We don't really have non-coherent mappings in our driver, so that bit remains unspecified. I guess all drivers where normal mappings behave like persistent coherent mappings can flip the switch on. Marek _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
