From 4b34869d9d26514a3305394e598dafaf12a42cfb Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Wed, 18 May 2022 09:13:14 -0700 Subject: [PATCH] d3d12: Don't use VLAs Fixes: 739283da ("d3d12: Improve planar resource support to handle video requirements") Reviewed-by: Sil Vilerino Part-of: --- src/gallium/drivers/d3d12/d3d12_resource.cpp | 26 +++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_resource.cpp b/src/gallium/drivers/d3d12/d3d12_resource.cpp index 4b6ba78b29e..e3f247669de 100644 --- a/src/gallium/drivers/d3d12/d3d12_resource.cpp +++ b/src/gallium/drivers/d3d12/d3d12_resource.cpp @@ -722,6 +722,8 @@ void d3d12_resource_get_planes_info(pipe_resource *pres, } } +static constexpr unsigned d3d12_max_planes = 3; + /** * Get stride and offset for the given pipe resource without the need to get * a winsys_handle. @@ -736,10 +738,10 @@ d3d12_resource_get_info(struct pipe_screen *pscreen, struct d3d12_resource* res = d3d12_resource(pres); unsigned num_planes = util_format_get_num_planes(res->overall_format); - pipe_resource* planes[num_planes]; - unsigned int strides[num_planes]; - unsigned int layer_strides[num_planes]; - unsigned int offsets[num_planes]; + pipe_resource *planes[d3d12_max_planes]; + unsigned int strides[d3d12_max_planes]; + unsigned int layer_strides[d3d12_max_planes]; + unsigned int offsets[d3d12_max_planes]; unsigned staging_res_size = 0; d3d12_resource_get_planes_info( pres, @@ -1444,10 +1446,10 @@ d3d12_transfer_map(struct pipe_context *pctx, /* Get planes information*/ unsigned num_planes = util_format_get_num_planes(res->overall_format); - pipe_resource* planes[num_planes]; - unsigned int strides[num_planes]; - unsigned int layer_strides[num_planes]; - unsigned int offsets[num_planes]; + pipe_resource *planes[d3d12_max_planes]; + unsigned int strides[d3d12_max_planes]; + unsigned int layer_strides[d3d12_max_planes]; + unsigned int offsets[d3d12_max_planes]; unsigned staging_res_size = 0; d3d12_resource_get_planes_info( @@ -1597,10 +1599,10 @@ d3d12_transfer_unmap(struct pipe_context *pctx, /* Get planes information*/ unsigned num_planes = util_format_get_num_planes(res->overall_format); - pipe_resource* planes[num_planes]; - unsigned int strides[num_planes]; - unsigned int layer_strides[num_planes]; - unsigned int offsets[num_planes]; + pipe_resource *planes[d3d12_max_planes]; + unsigned int strides[d3d12_max_planes]; + unsigned int layer_strides[d3d12_max_planes]; + unsigned int offsets[d3d12_max_planes]; unsigned staging_res_size = 0; d3d12_resource_get_planes_info(