llvmpipe: add array/3d clearing support

Fixes:
dEQP-VK.pipeline.multisample.sampled_image.64x64_4.*.samples_4

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6381>
This commit is contained in:
Dave Airlie 2020-06-19 16:56:36 +10:00
parent 2d6385715d
commit 6d60cd44f3

View file

@ -313,6 +313,10 @@ llvmpipe_clear_render_target(struct pipe_context *pipe,
if (dst->texture->nr_samples > 1) {
struct pipe_box box;
u_box_2d(dstx, dsty, width, height, &box);
if (dst->texture->target != PIPE_BUFFER) {
box.z = dst->u.tex.first_layer;
box.depth = dst->u.tex.last_layer - dst->u.tex.first_layer + 1;
}
for (unsigned s = 0; s < util_res_sample_count(dst->texture); s++) {
lp_clear_color_texture_msaa(pipe, dst->texture, dst->format,
color, s, &box);
@ -378,6 +382,10 @@ llvmpipe_clear_depth_stencil(struct pipe_context *pipe,
uint64_t zstencil = util_pack64_z_stencil(dst->format, depth, stencil);
struct pipe_box box;
u_box_2d(dstx, dsty, width, height, &box);
if (dst->texture->target != PIPE_BUFFER) {
box.z = dst->u.tex.first_layer;
box.depth = dst->u.tex.last_layer - dst->u.tex.first_layer + 1;
}
for (unsigned s = 0; s < util_res_sample_count(dst->texture); s++)
lp_clear_depth_stencil_texture_msaa(pipe, dst->texture,
dst->format, clear_flags,