[Mesa-dev] [PATCH 01/22] intel/isl: Limit CCS to one subresource on gen7
Jason Ekstrand
jason at jlekstrand.net
Tue May 2 21:48:09 UTC 2017
On Thu, Apr 27, 2017 at 11:32 AM, Nanley Chery <nanleychery at gmail.com>
wrote:
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> ---
> src/intel/isl/isl.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
> index f89f351c15..ce5b35c47c 100644
> --- a/src/intel/isl/isl.c
> +++ b/src/intel/isl/isl.c
> @@ -1610,14 +1610,19 @@ isl_surf_get_ccs_surf(const struct isl_device *dev,
> return false;
> }
>
> + /* Multi-LOD and multi-layer CCS isn't supported on gen7. */
> + const uint8_t levels = ISL_DEV_GEN(dev) == 7 ? 1 : surf->levels;
> + const uint32_t array_len = ISL_DEV_GEN(dev) == 7 ?
> + 1 : surf->logical_level0_px.array_len;
> +
>
The GL driver does
if (brw->gen < 8 && (mip_mapped || arrayed))
return false;
Which is a bit stronger condition. I think this is probably ok though so
long as we're careful.
It might be worth adding the following asserts to blorp_fast_clear and
blorp_ccs_resolve:
assert(level < surf->aux_surf->levels);
if (surf->surf->dim == ISL_SURF_DIM_3D) {
assert(start_layer < surf->aux_surf->logical_level0_px.depth);
assert(start_layer + num_layers <
surf->aux_surf->logical_level0_px.depth);
} else {
assert(start_layer < surf->aux_surf->logical_level0_px.array_len);
assert(start_layer + num_layers <
surf->aux_surf->logical_level0_px.array_len);
}
That way we'll catch it if anyone ever tries to resolve/fast-clear a
miplevel or array slice that isn't there.
--Jason
> return isl_surf_init(dev, ccs_surf,
> .dim = surf->dim,
> .format = ccs_format,
> .width = surf->logical_level0_px.width,
> .height = surf->logical_level0_px.height,
> .depth = surf->logical_level0_px.depth,
> - .levels = surf->levels,
> - .array_len = surf->logical_level0_px.array_len,
> + .levels = levels,
> + .array_len = array_len,
> .samples = 1,
> .usage = ISL_SURF_USAGE_CCS_BIT,
> .tiling_flags = ISL_TILING_CCS_BIT);
> --
> 2.12.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170502/acb33d16/attachment.html>
More information about the mesa-dev
mailing list