d3d12: Support ARB_framebuffer_no_attachments

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14504>
This commit is contained in:
Jesse Natalie
2022-01-11 13:39:47 -08:00
parent 0cc79c9c1e
commit 14b1319f29
2 changed files with 33 additions and 8 deletions

View File

@@ -556,10 +556,20 @@ spec/arb_explicit_attrib_location/overlapping-locations-input-attribs api: crash
spec/arb_explicit_attrib_location/overlapping-locations-input-attribs shader: crash
spec/arb_fragment_program/fp-indirections: skip
spec/arb_fragment_shader_interlock/arb_fragment_shader_interlock-image-load-store: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-atomic: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-minmax: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-params: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-atomic/per-sample: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/basic: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/discard: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/fb resize: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/glscissor: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/glviewport: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms10: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms12: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms14: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms16: fail
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms2: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms4: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms6: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/ms8: skip
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-roundup-samples: skip
spec/arb_framebuffer_srgb/arb_framebuffer_srgb-srgb_conformance: fail
spec/arb_geometry_shader4/arb_geometry_shader4-ignore-adjacent-vertices gl_line_strip_adjacency: skip
@@ -4264,10 +4274,10 @@ wgl/wgl-sanity: skip
summary:
name: results
---- --------
pass: 15870
fail: 1202
pass: 15882
fail: 1208
crash: 68
skip: 2973
skip: 2977
timeout: 0
warn: 10
incomplete: 0
@@ -4276,4 +4286,4 @@ summary:
changes: 0
fixes: 0
regressions: 0
total: 20133
total: 20155

View File

@@ -309,6 +309,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_DRAW_INDIRECT:
case PIPE_CAP_MULTI_DRAW_INDIRECT:
case PIPE_CAP_MULTI_DRAW_INDIRECT_PARAMS:
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
return 1;
default:
@@ -540,6 +541,20 @@ d3d12_is_format_supported(struct pipe_screen *pscreen,
util_format_is_yuv(format)))
return false;
if (format == PIPE_FORMAT_NONE) {
/* For UAV-only rendering, aka ARB_framebuffer_no_attachments */
switch (sample_count) {
case 0:
case 1:
case 4:
case 8:
case 16:
return true;
default:
return false;
}
}
DXGI_FORMAT dxgi_format = d3d12_get_format(format);
if (dxgi_format == DXGI_FORMAT_UNKNOWN)
return false;