Don't query magma_get_buffer_format_plane_info for buffers
This will soon return an error. The values are only meaningful for
images (not buffers), so querying them doesn't make sense.
Change-Id: I31a8b59767e2791871fadba6eb45cef68ca46702
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index ba0b6e5..9bb7674 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -2319,13 +2319,9 @@
} else if (fuchsia_buffer_collection) {
VkDeviceSize aligned_alloc_size = align_u64(pAllocateInfo->allocationSize, 4096);
- const int kParamCount = 4;
- struct anv_fuchsia_image_plane_params params[kParamCount];
bool non_cache_coherent;
- isl_tiling_flags_t tiling_flags;
- result =
- anv_image_params_from_buffer_collection(_device, fuchsia_buffer_collection->collection,
- params, &tiling_flags, &non_cache_coherent);
+ result = anv_image_params_from_buffer_collection(
+ _device, fuchsia_buffer_collection->collection, NULL, NULL, &non_cache_coherent);
if (result != VK_SUCCESS)
goto fail;
diff --git a/src/intel/vulkan/anv_magma_buffer_collection.c b/src/intel/vulkan/anv_magma_buffer_collection.c
index d1718c8..81a76a5 100644
--- a/src/intel/vulkan/anv_magma_buffer_collection.c
+++ b/src/intel/vulkan/anv_magma_buffer_collection.c
@@ -331,17 +331,26 @@
{
magma_bool_t has_format_modifier;
uint64_t format_modifier;
- magma_image_plane_t planes[MAGMA_MAX_IMAGE_PLANES];
+ magma_status_t status = MAGMA_STATUS_OK;
+ if (params_out) {
+ magma_image_plane_t planes[MAGMA_MAX_IMAGE_PLANES];
- magma_status_t status = magma_get_buffer_format_plane_info(description, planes);
- if (status == MAGMA_STATUS_OK) {
- status =
- magma_get_buffer_format_modifier(description, &has_format_modifier, &format_modifier);
+ status = magma_get_buffer_format_plane_info(description, planes);
+ if (status == MAGMA_STATUS_OK) {
+ for (uint32_t i = 0; i < MAGMA_MAX_IMAGE_PLANES; i++) {
+ params_out[i].bytes_per_row = planes[i].bytes_per_row;
+ params_out[i].byte_offset = planes[i].byte_offset;
+ }
+ }
}
uint32_t coherency_domain;
if (status == MAGMA_STATUS_OK) {
status = magma_get_buffer_coherency_domain(description, &coherency_domain);
}
+ if (status == MAGMA_STATUS_OK) {
+ status =
+ magma_get_buffer_format_modifier(description, &has_format_modifier, &format_modifier);
+ }
magma_buffer_format_description_release(description);
@@ -352,31 +361,28 @@
*not_cache_coherent_out = coherency_domain == MAGMA_COHERENCY_DOMAIN_RAM;
}
- *tiling_flags_out = ISL_TILING_LINEAR_BIT;
+ if (tiling_flags_out) {
+ *tiling_flags_out = ISL_TILING_LINEAR_BIT;
- if (has_format_modifier) {
- switch (format_modifier) {
- case MAGMA_FORMAT_MODIFIER_INTEL_X_TILED:
- *tiling_flags_out = ISL_TILING_X_BIT;
- break;
- case MAGMA_FORMAT_MODIFIER_INTEL_Y_TILED:
- *tiling_flags_out = ISL_TILING_Y0_BIT;
- break;
- case MAGMA_FORMAT_MODIFIER_INTEL_YF_TILED:
- *tiling_flags_out = ISL_TILING_Yf_BIT;
- break;
- case MAGMA_FORMAT_MODIFIER_LINEAR:
- break;
- default:
- assert(false);
+ if (has_format_modifier) {
+ switch (format_modifier) {
+ case MAGMA_FORMAT_MODIFIER_INTEL_X_TILED:
+ *tiling_flags_out = ISL_TILING_X_BIT;
+ break;
+ case MAGMA_FORMAT_MODIFIER_INTEL_Y_TILED:
+ *tiling_flags_out = ISL_TILING_Y0_BIT;
+ break;
+ case MAGMA_FORMAT_MODIFIER_INTEL_YF_TILED:
+ *tiling_flags_out = ISL_TILING_Yf_BIT;
+ break;
+ case MAGMA_FORMAT_MODIFIER_LINEAR:
+ break;
+ default:
+ assert(false);
+ }
}
}
- for (uint32_t i = 0; i < MAGMA_MAX_IMAGE_PLANES; i++) {
- params_out[i].bytes_per_row = planes[i].bytes_per_row;
- params_out[i].byte_offset = planes[i].byte_offset;
- }
-
return VK_SUCCESS;
}