mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-24 18:00:48 +02:00
radv/gfx9: only minify image view width/height/depth before gfx9.
For gfx9 the addressing for images has changed, so we need to
provide the hw with the level0, however we still need to scale
for format block differences (so our compressed upload paths still
work).
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit bae7723e13)
This commit is contained in:
parent
7f3555951e
commit
adce678550
2 changed files with 15 additions and 7 deletions
|
|
@ -3121,8 +3121,8 @@ radv_initialise_color_surface(struct radv_device *device,
|
|||
cb->cb_color_view |= S_028C6C_MIP_LEVEL(iview->base_mip);
|
||||
cb->cb_color_attrib |= S_028C74_MIP0_DEPTH(mip0_depth) |
|
||||
S_028C74_RESOURCE_TYPE(iview->image->surface.u.gfx9.resource_type);
|
||||
cb->cb_color_attrib2 = S_028C68_MIP0_WIDTH(iview->image->info.width - 1) |
|
||||
S_028C68_MIP0_HEIGHT(iview->image->info.height - 1) |
|
||||
cb->cb_color_attrib2 = S_028C68_MIP0_WIDTH(iview->extent.width - 1) |
|
||||
S_028C68_MIP0_HEIGHT(iview->extent.height - 1) |
|
||||
S_028C68_MAX_MIP(iview->image->info.levels - 1);
|
||||
|
||||
cb->gfx9_epitch = S_0287A0_EPITCH(iview->image->surface.u.gfx9.surf.epitch);
|
||||
|
|
|
|||
|
|
@ -937,11 +937,19 @@ radv_image_view_init(struct radv_image_view *iview,
|
|||
iview->vk_format = vk_format_depth_only(iview->vk_format);
|
||||
}
|
||||
|
||||
iview->extent = (VkExtent3D) {
|
||||
.width = radv_minify(image->info.width , range->baseMipLevel),
|
||||
.height = radv_minify(image->info.height, range->baseMipLevel),
|
||||
.depth = radv_minify(image->info.depth , range->baseMipLevel),
|
||||
};
|
||||
if (device->physical_device->rad_info.chip_class >= GFX9) {
|
||||
iview->extent = (VkExtent3D) {
|
||||
.width = image->info.width,
|
||||
.height = image->info.height,
|
||||
.depth = image->info.depth,
|
||||
};
|
||||
} else {
|
||||
iview->extent = (VkExtent3D) {
|
||||
.width = radv_minify(image->info.width , range->baseMipLevel),
|
||||
.height = radv_minify(image->info.height, range->baseMipLevel),
|
||||
.depth = radv_minify(image->info.depth , range->baseMipLevel),
|
||||
};
|
||||
}
|
||||
|
||||
if (iview->vk_format != image->vk_format) {
|
||||
iview->extent.width = round_up_u32(iview->extent.width * vk_format_get_blockwidth(iview->vk_format),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue