d3d12: GL4.3

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26108>
This commit is contained in:
Jesse Natalie 2023-11-07 14:07:03 -08:00 committed by Marge Bot
parent 2a9f8a256a
commit e61287888d
6 changed files with 23 additions and 20 deletions

View File

@ -166,29 +166,29 @@ GL 4.2, GLSL 4.20 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v
GL_ARB_map_buffer_alignment DONE (all drivers)
GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+
GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7.5+
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
GL_ARB_clear_buffer_object DONE (all drivers)
GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, v3d, panfrost, d3d12, crocus/gen7+, asahi)
GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_copy_image DONE (freedreno/a6xx, nv50, softpipe, v3d, crocus)
GL_KHR_debug DONE (all drivers)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_fragment_layer_viewport DONE (freedreno/a6xx, nv50, softpipe, d3d12, crocus/gen6+)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, v3d, d3d12, asahi, crocus/gen7+)
GL_ARB_fragment_layer_viewport DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, v3d, asahi, crocus/gen7+)
GL_ARB_internalformat_query2 DONE (all drivers)
GL_ARB_invalidate_subdata DONE (all drivers)
GL_ARB_multi_draw_indirect DONE (freedreno, softpipe, v3d, d3d12, crocus/gen7+, asahi)
GL_ARB_multi_draw_indirect DONE (freedreno, softpipe, v3d, crocus/gen7+, asahi)
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_robust_buffer_access_behavior DONE (freedreno, d3d12)
GL_ARB_shader_image_size DONE (freedreno/a5xx+, softpipe, v3d, panfrost, d3d12, crocus/gen7+, asahi)
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, softpipe, v3d, panfrost, d3d12, crocus/gen7+, asahi)
GL_ARB_stencil_texturing DONE (freedreno, nv50, softpipe, v3d, panfrost, d3d12, asahi)
GL_ARB_texture_buffer_range DONE (freedreno, nv50, softpipe, v3d, d3d12, crocus)
GL_ARB_robust_buffer_access_behavior DONE (freedreno)
GL_ARB_shader_image_size DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_stencil_texturing DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi)
GL_ARB_texture_buffer_range DONE (freedreno, nv50, softpipe, v3d, crocus)
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
GL_ARB_texture_view DONE (freedreno, nv50, softpipe, v3d, asahi, crocus/gen7+, d3d12)
GL_ARB_texture_view DONE (freedreno, nv50, softpipe, v3d, asahi, crocus/gen7+)
GL_ARB_vertex_attrib_binding DONE (all drivers)

View File

@ -405,7 +405,6 @@ spec@nv_copy_depth_to_color@nv_copy_depth_to_color 0 0x223344ff,Fail
spec@nv_copy_depth_to_color@nv_copy_depth_to_color 0 0x76356278,Fail
spec@nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x223344ff,Fail
spec@nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x76356278,Fail
spec@nv_copy_image@nv_copy_image-formats,Crash
wgl@wgl-multi-context-single-window,Fail
# remove this after https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/843

View File

@ -485,7 +485,8 @@ create_staging_resource(struct d3d12_context *ctx,
templ.nr_samples = src->base.b.nr_samples;
templ.nr_storage_samples = src->base.b.nr_storage_samples;
templ.usage = PIPE_USAGE_STAGING;
templ.bind = util_format_is_depth_or_stencil(templ.format) ? PIPE_BIND_DEPTH_STENCIL : PIPE_BIND_RENDER_TARGET;
templ.bind = util_format_is_depth_or_stencil(templ.format) ? PIPE_BIND_DEPTH_STENCIL :
util_format_is_compressed(templ.format) ? 0 : PIPE_BIND_RENDER_TARGET;
templ.target = src->base.b.target;
staging_res = ctx->base.screen->resource_create(ctx->base.screen, &templ);

View File

@ -100,7 +100,7 @@ d3d12_bo_wrap_res(struct d3d12_screen *screen, ID3D12Resource *res, enum d3d12_r
bo->residency_status = residency;
bo->last_used_timestamp = 0;
desc.Flags = D3D12_RESOURCE_FLAG_NONE;
desc.Flags &= ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
screen->dev->GetCopyableFootprints(&desc, 0, total_subresources, 0, nullptr, nullptr, nullptr, &bo->estimated_size);
if (residency == d3d12_resident) {
mtx_lock(&screen->submit_mutex);

View File

@ -417,7 +417,7 @@ convert_planar_resource(struct d3d12_resource *res)
#if DEBUG
struct d3d12_screen *screen = d3d12_screen(res->base.b.screen);
D3D12_RESOURCE_DESC desc = GetDesc(res->bo->res);
desc.Flags = D3D12_RESOURCE_FLAG_NONE;
desc.Flags &= ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
D3D12_PLACED_SUBRESOURCE_FOOTPRINT placed_footprint = {};
D3D12_SUBRESOURCE_FOOTPRINT *footprint = &placed_footprint.Footprint;
unsigned subresource = plane * desc.MipLevels * desc.DepthOrArraySize;
@ -598,7 +598,7 @@ d3d12_resource_from_handle(struct pipe_screen *pscreen,
if (templ && handle->format != templ->format) {
unsigned subresource = handle->plane * incoming_res_desc.MipLevels * incoming_res_desc.DepthOrArraySize;
auto temp_desc = incoming_res_desc;
temp_desc.Flags = D3D12_RESOURCE_FLAG_NONE;
temp_desc.Flags &= ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
screen->dev->GetCopyableFootprints(&temp_desc, subresource, 1, 0, &placed_footprint, nullptr, nullptr, nullptr);
} else {
footprint->Format = incoming_res_desc.Format;
@ -1099,7 +1099,7 @@ fill_buffer_location(struct d3d12_context *ctx,
D3D12_PLACED_SUBRESOURCE_FOOTPRINT footprint;
uint64_t offset = 0;
auto descr = GetDesc(d3d12_resource_underlying(res, &offset));
descr.Flags = D3D12_RESOURCE_FLAG_NONE;
descr.Flags &= ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
struct d3d12_screen *screen = d3d12_screen(ctx->base.screen);
ID3D12Device* dev = screen->dev;

View File

@ -193,9 +193,9 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return 1;
case PIPE_CAP_GLSL_FEATURE_LEVEL:
return 420;
return 430;
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
return 420;
return 430;
case PIPE_CAP_ESSL_FEATURE_LEVEL:
return 310;
@ -332,6 +332,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_TIMELINE_SEMAPHORE_IMPORT:
case PIPE_CAP_CLIP_HALFZ:
case PIPE_CAP_VS_LAYER_VIEWPORT:
case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
return 1;
case PIPE_CAP_MAX_VERTEX_STREAMS:
@ -447,7 +448,9 @@ d3d12_get_shader_param(struct pipe_screen *pscreen,
return 65536;
case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
return 13; /* 15 - 2 for lowered uniforms and state vars*/
if (screen->opts.ResourceBindingTier < D3D12_RESOURCE_BINDING_TIER_3)
return 13; /* 15 - 2 for lowered uniforms and state vars*/
return 15;
case PIPE_SHADER_CAP_MAX_TEMPS:
return INT_MAX;