isl: Allow multisampled array textures
This probably isn't the only thing that needs to be done to get multisampled array textures working in Vulkan but I think this is all that ISL really needs and it does fix 8 of the new CTS tests. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Cc: "12.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:
parent
cf7be70aa7
commit
fb89551047
|
@ -557,27 +557,27 @@ isl_calc_phys_level0_extent_sa(const struct isl_device *dev,
|
||||||
|
|
||||||
case ISL_MSAA_LAYOUT_ARRAY:
|
case ISL_MSAA_LAYOUT_ARRAY:
|
||||||
assert(info->depth == 1);
|
assert(info->depth == 1);
|
||||||
assert(info->array_len == 1);
|
assert(info->levels == 1);
|
||||||
assert(!isl_format_is_compressed(info->format));
|
assert(!isl_format_is_compressed(info->format));
|
||||||
|
|
||||||
*phys_level0_sa = (struct isl_extent4d) {
|
*phys_level0_sa = (struct isl_extent4d) {
|
||||||
.w = info->width,
|
.w = info->width,
|
||||||
.h = info->height,
|
.h = info->height,
|
||||||
.d = 1,
|
.d = 1,
|
||||||
.a = info->samples,
|
.a = info->array_len * info->samples,
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ISL_MSAA_LAYOUT_INTERLEAVED:
|
case ISL_MSAA_LAYOUT_INTERLEAVED:
|
||||||
assert(info->depth == 1);
|
assert(info->depth == 1);
|
||||||
assert(info->array_len == 1);
|
assert(info->levels == 1);
|
||||||
assert(!isl_format_is_compressed(info->format));
|
assert(!isl_format_is_compressed(info->format));
|
||||||
|
|
||||||
*phys_level0_sa = (struct isl_extent4d) {
|
*phys_level0_sa = (struct isl_extent4d) {
|
||||||
.w = info->width,
|
.w = info->width,
|
||||||
.h = info->height,
|
.h = info->height,
|
||||||
.d = 1,
|
.d = 1,
|
||||||
.a = 1,
|
.a = info->array_len,
|
||||||
};
|
};
|
||||||
|
|
||||||
isl_msaa_interleaved_scale_px_to_sa(info->samples,
|
isl_msaa_interleaved_scale_px_to_sa(info->samples,
|
||||||
|
|
Loading…
Reference in New Issue