anv_isl_format_for_descriptor_type(device, desc->type);
anv_fill_buffer_surface_state(device, bview->general.state.map,
format, ISL_SWIZZLE_IDENTITY,
- usage, bview->address, bview->range, 1);
+ usage, bview->address, bview->vk.range, 1);
}
void
desc->set_buffer_view = bview;
- bview->range = desc->bind_range;
+ bview->vk.range = desc->bind_range;
bview->address = bind_addr;
if (set->is_push)
dst_desc->set_buffer_view = dst_bview;
- dst_bview->range = src_bview->range;
+ dst_bview->vk.range = src_bview->vk.range;
dst_bview->address = src_bview->address;
memcpy(dst_bview->general.state.map,
ANV_FROM_HANDLE(anv_buffer, buffer, pCreateInfo->buffer);
struct anv_buffer_view *view;
- view = vk_object_alloc(&device->vk, pAllocator, sizeof(*view),
- VK_OBJECT_TYPE_BUFFER_VIEW);
+ view = vk_buffer_view_create(&device->vk, pCreateInfo,
+ pAllocator, sizeof(*view));
if (!view)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
0, VK_IMAGE_TILING_LINEAR);
const uint32_t format_bs = isl_format_get_layout(format.isl_format)->bpb / 8;
- view->range = vk_buffer_range(&buffer->vk, pCreateInfo->offset,
- pCreateInfo->range);
- view->range = align_down_npot_u32(view->range, format_bs);
+ const uint32_t align_range =
+ align_down_npot_u32(view->vk.range, format_bs);
view->address = anv_address_add(buffer->address, pCreateInfo->offset);
format.isl_format,
format.swizzle,
ISL_SURF_USAGE_TEXTURE_BIT,
- view->address, view->range, format_bs);
+ view->address, align_range, format_bs);
} else {
view->general.state = ANV_STATE_NULL;
}
&view->storage,
format.isl_format, format.swizzle,
ISL_SURF_USAGE_STORAGE_BIT,
- view->address, view->range, format_bs);
+ view->address, align_range, format_bs);
} else {
view->storage.state = ANV_STATE_NULL;
}
view->storage.state);
}
- vk_object_free(&device->vk, pAllocator, view);
+ vk_buffer_view_destroy(&device->vk, pAllocator, &view->vk);
}
#include "vk_acceleration_structure.h"
#include "vk_alloc.h"
#include "vk_buffer.h"
+#include "vk_buffer_view.h"
#include "vk_command_buffer.h"
#include "vk_command_pool.h"
#include "vk_debug_report.h"
};
struct anv_buffer_view {
- struct vk_object_base base;
-
- uint64_t range; /**< VkBufferViewCreateInfo::range */
+ struct vk_buffer_view vk;
struct anv_address address;
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer, vk.base, VkBuffer,
VK_OBJECT_TYPE_BUFFER)
-VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer_view, base, VkBufferView,
+VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer_view, vk.base, VkBufferView,
VK_OBJECT_TYPE_BUFFER_VIEW)
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_descriptor_pool, base, VkDescriptorPool,
VK_OBJECT_TYPE_DESCRIPTOR_POOL)