etnaviv: Advertise PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT
This CAP only concerns mapping of buffers, not textures. For buffers, etnaviv does not seem to use any staging resources. In neither case does etnaviv use explicit syncs or flushes, so persistent/coherent mapping should come as the implicit default and the cap should be almost free. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19392>
This commit is contained in:
@@ -195,7 +195,7 @@ GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, i965/gen8+, nvc0, r600, radeonsi,
|
||||
GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
|
||||
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, v3d, vc4, lima, panfrost, asahi, d3d12, softpipe)
|
||||
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, v3d, vc4, lima, panfrost, asahi, d3d12, softpipe, etnaviv)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, softpipe, virgl)
|
||||
GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, i965, nv50, softpipe, virgl)
|
||||
- compile-time constant expressions DONE
|
||||
|
@@ -159,6 +159,7 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
|
||||
case PIPE_CAP_STRING_MARKER:
|
||||
case PIPE_CAP_FRONTEND_NOOP:
|
||||
case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
|
||||
return 1;
|
||||
case PIPE_CAP_NATIVE_FENCE_FD:
|
||||
return screen->drm_version >= ETNA_DRM_VERSION_FENCE_FD;
|
||||
|
@@ -222,6 +222,7 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
|
||||
*/
|
||||
if ((usage & PIPE_MAP_DISCARD_RANGE) &&
|
||||
!(usage & PIPE_MAP_UNSYNCHRONIZED) &&
|
||||
!(prsc->flags & PIPE_RESOURCE_FLAG_MAP_PERSISTENT) &&
|
||||
prsc->last_level == 0 &&
|
||||
prsc->width0 == box->width &&
|
||||
prsc->height0 == box->height &&
|
||||
|
Reference in New Issue
Block a user