diff --git a/docs/features.txt b/docs/features.txt index 8e644d379bb..a85da4c6524 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -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) + GL_ARB_buffer_storage DONE (freedreno, i965, nv50, v3d, vc4, lima, panfrost, asahi, d3d12) 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 diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt index 628ca865d3c..acb903d8235 100644 --- a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt +++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt @@ -285,14 +285,6 @@ spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_ spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend_gles3: skip spec/arb_blend_func_extended/arb_blend_func_extended-getfragdataindex_gles3: skip spec/arb_blend_func_extended/arb_blend_func_extended-output-location_gles3: skip -spec/arb_buffer_storage/bufferstorage-persistent draw: skip -spec/arb_buffer_storage/bufferstorage-persistent draw client-storage: skip -spec/arb_buffer_storage/bufferstorage-persistent draw coherent: skip -spec/arb_buffer_storage/bufferstorage-persistent draw coherent client-storage: skip -spec/arb_buffer_storage/bufferstorage-persistent read: skip -spec/arb_buffer_storage/bufferstorage-persistent read client-storage: skip -spec/arb_buffer_storage/bufferstorage-persistent read coherent: skip -spec/arb_buffer_storage/bufferstorage-persistent read coherent client-storage: skip spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw: skip spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw client-storage: skip spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent: skip @@ -1505,7 +1497,6 @@ spec/arb_sparse_buffer/buffer-data: skip spec/arb_sparse_buffer/commit: skip spec/arb_sparse_buffer/minmax: skip spec/arb_stencil_texturing/draw: fail -spec/arb_sync/clientwaitsync-timeout: skip spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 1: skip spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 2: skip spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 3: skip @@ -1650,7 +1641,6 @@ spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 3: sk spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 4: skip spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 7: skip spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: skip -spec/arb_texture_buffer_object/bufferstorage: skip spec/arb_texture_buffer_object/negative-unsupported: skip spec/arb_texture_buffer_range/ranges-2: fail spec/arb_texture_buffer_range/ranges-2 compat: fail @@ -2515,7 +2505,6 @@ spec/arb_transform_feedback2/change objects while paused (gles3): skip spec/arb_transform_feedback_instanced/draw-auto instanced: fail spec/arb_transform_feedback_overflow_query/arb_transform_feedback_overflow_query-basic: skip spec/arb_transform_feedback_overflow_query/arb_transform_feedback_overflow_query-errors: skip -spec/arb_uniform_buffer_object/bufferstorage: skip spec/arb_vertex_attrib_64bit/arb_vertex_attrib_64bit-overlapping-locations api: crash spec/arb_vertex_attrib_64bit/arb_vertex_attrib_64bit-overlapping-locations shader: crash spec/arb_vertex_program/arb_vertex_program-matrix-property-bindings: fail @@ -3519,10 +3508,10 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 17865 + pass: 17881 fail: 2043 crash: 11 - skip: 1445 + skip: 1434 timeout: 0 warn: 10 incomplete: 0 @@ -3531,4 +3520,4 @@ summary: changes: 0 fixes: 0 regressions: 0 - total: 21383 + total: 21388 diff --git a/src/gallium/drivers/d3d12/d3d12_resource.cpp b/src/gallium/drivers/d3d12/d3d12_resource.cpp index 0dde1f57825..957d14c0b2a 100644 --- a/src/gallium/drivers/d3d12/d3d12_resource.cpp +++ b/src/gallium/drivers/d3d12/d3d12_resource.cpp @@ -146,7 +146,12 @@ init_buffer(struct d3d12_screen *screen, * element state */ assert(templ->format == d3d12_emulated_vtx_format(templ->format)); - switch (templ->usage) { + if ((templ->flags & PIPE_RESOURCE_FLAG_MAP_PERSISTENT) && + res->base.b.usage == PIPE_USAGE_DEFAULT) + { + res->base.b.usage = PIPE_USAGE_STAGING; + } + switch (res->base.b.usage) { case PIPE_USAGE_DEFAULT: case PIPE_USAGE_IMMUTABLE: bufmgr = screen->cache_bufmgr; diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 5446d5b5d2a..0e9d0453ae0 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -265,6 +265,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return screen->opts.PSSpecifiedStencilRefSupported; case PIPE_CAP_SEAMLESS_CUBE_MAP: + case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT: case PIPE_CAP_TEXTURE_QUERY_LOD: case PIPE_CAP_VS_INSTANCEID: case PIPE_CAP_TGSI_TEX_TXF_LZ: