mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-04 06:00:31 +01:00
anv,isl: Lower storage image formats in anv
ISL was being a bit too clever for its own good and lowering the format for us. This is all well and good *if* we always want to lower it. However, the GL driver selectively lowers the format depending on whether the surface is write-only or not. Reviewed-by: Chad Versace <chad.versace@intel.com> Cc: "12.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
97f12773b8
commit
d82322eb18
2 changed files with 4 additions and 7 deletions
|
|
@ -191,13 +191,7 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
|
|||
struct GENX(RENDER_SURFACE_STATE) s = { 0 };
|
||||
|
||||
s.SurfaceType = get_surftype(info->surf->dim, info->view->usage);
|
||||
|
||||
if (info->view->usage & ISL_SURF_USAGE_STORAGE_BIT) {
|
||||
s.SurfaceFormat =
|
||||
isl_lower_storage_image_format(dev->info, info->view->format);
|
||||
} else {
|
||||
s.SurfaceFormat = info->view->format;
|
||||
}
|
||||
s.SurfaceFormat = info->view->format;
|
||||
|
||||
#if GEN_IS_HASWELL
|
||||
s.IntegerSurfaceFormat = isl_format_has_int_channel(s.SurfaceFormat);
|
||||
|
|
|
|||
|
|
@ -537,12 +537,15 @@ anv_image_view_init(struct anv_image_view *iview,
|
|||
iview->color_rt_surface_state.alloc_size = 0;
|
||||
}
|
||||
|
||||
/* NOTE: This one needs to go last since it may stomp isl_view.format */
|
||||
if (image->usage & usage_mask & VK_IMAGE_USAGE_STORAGE_BIT) {
|
||||
iview->storage_surface_state = alloc_surface_state(device, cmd_buffer);
|
||||
|
||||
if (isl_has_matching_typed_storage_image_format(&device->info,
|
||||
format.isl_format)) {
|
||||
isl_view.usage = cube_usage | ISL_SURF_USAGE_STORAGE_BIT;
|
||||
isl_view.format = isl_lower_storage_image_format(&device->info,
|
||||
isl_view.format);
|
||||
isl_surf_fill_state(&device->isl_dev,
|
||||
iview->storage_surface_state.map,
|
||||
.surf = &surface->isl,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue