r300g: implement MSAA copies by resolving and upsampling
There's no other way. It will use hw resolve + blit.
This commit is contained in:
@@ -679,7 +679,9 @@ static boolean r300_is_simple_msaa_resolve(const struct pipe_blit_info *info)
|
|||||||
unsigned dst_width = u_minify(info->dst.resource->width0, info->dst.level);
|
unsigned dst_width = u_minify(info->dst.resource->width0, info->dst.level);
|
||||||
unsigned dst_height = u_minify(info->dst.resource->height0, info->dst.level);
|
unsigned dst_height = u_minify(info->dst.resource->height0, info->dst.level);
|
||||||
|
|
||||||
return info->dst.resource->format == info->src.resource->format &&
|
return info->src.resource->nr_samples > 1 &&
|
||||||
|
info->dst.resource->nr_samples <= 1 &&
|
||||||
|
info->dst.resource->format == info->src.resource->format &&
|
||||||
info->dst.resource->format == info->dst.format &&
|
info->dst.resource->format == info->dst.format &&
|
||||||
info->src.resource->format == info->src.format &&
|
info->src.resource->format == info->src.format &&
|
||||||
!info->scissor_enable &&
|
!info->scissor_enable &&
|
||||||
@@ -803,7 +805,6 @@ static void r300_blit(struct pipe_context *pipe,
|
|||||||
|
|
||||||
/* MSAA resolve. */
|
/* MSAA resolve. */
|
||||||
if (info.src.resource->nr_samples > 1 &&
|
if (info.src.resource->nr_samples > 1 &&
|
||||||
info.dst.resource->nr_samples <= 1 &&
|
|
||||||
!util_format_is_depth_or_stencil(info.src.resource->format)) {
|
!util_format_is_depth_or_stencil(info.src.resource->format)) {
|
||||||
r300_msaa_resolve(pipe, &info);
|
r300_msaa_resolve(pipe, &info);
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user