mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-23 18:24:13 +08:00
d3d12: GL4.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26108>
This commit is contained in:
parent
2a9f8a256a
commit
e61287888d
@ -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)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user