venus: add dev->renderer pointer

dev->instance->renderer is slower to type and to follow.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437>
This commit is contained in:
Chia-I Wu 2021-04-23 10:15:53 -07:00
parent b54a262421
commit 6db21119b7
4 changed files with 16 additions and 16 deletions

View File

@ -3015,6 +3015,7 @@ vn_CreateDevice(VkPhysicalDevice physicalDevice,
dev->instance = instance; dev->instance = instance;
dev->physical_device = physical_dev; dev->physical_device = physical_dev;
dev->renderer = instance->renderer;
VkDeviceCreateInfo local_create_info; VkDeviceCreateInfo local_create_info;
pCreateInfo = pCreateInfo =

View File

@ -102,6 +102,7 @@ struct vn_device {
struct vn_instance *instance; struct vn_instance *instance;
struct vn_physical_device *physical_device; struct vn_physical_device *physical_device;
struct vn_renderer *renderer;
struct vn_queue *queues; struct vn_queue *queues;
uint32_t queue_count; uint32_t queue_count;

View File

@ -51,9 +51,9 @@ vn_device_memory_simple_alloc(struct vn_device *dev,
const VkPhysicalDeviceMemoryProperties *mem_props = const VkPhysicalDeviceMemoryProperties *mem_props =
&dev->physical_device->memory_properties.memoryProperties; &dev->physical_device->memory_properties.memoryProperties;
const VkMemoryType *mem_type = &mem_props->memoryTypes[mem_type_index]; const VkMemoryType *mem_type = &mem_props->memoryTypes[mem_type_index];
result = vn_renderer_bo_create_gpu(dev->instance->renderer, mem->size, result =
mem->base.id, mem_type->propertyFlags, vn_renderer_bo_create_gpu(dev->renderer, mem->size, mem->base.id,
0, &mem->base_bo); mem_type->propertyFlags, 0, &mem->base_bo);
if (result != VK_SUCCESS) { if (result != VK_SUCCESS) {
vn_async_vkFreeMemory(dev->instance, vn_device_to_handle(dev), vn_async_vkFreeMemory(dev->instance, vn_device_to_handle(dev),
mem_handle, NULL); mem_handle, NULL);
@ -216,9 +216,9 @@ vn_AllocateMemory(VkDevice device,
struct vn_renderer_bo *bo; struct vn_renderer_bo *bo;
result = vn_renderer_bo_create_dmabuf( result = vn_renderer_bo_create_dmabuf(
dev->instance->renderer, pAllocateInfo->allocationSize, dev->renderer, pAllocateInfo->allocationSize, import_info->fd,
import_info->fd, mem_type->propertyFlags, mem_type->propertyFlags, export_info ? export_info->handleTypes : 0,
export_info ? export_info->handleTypes : 0, &bo); &bo);
if (result != VK_SUCCESS) { if (result != VK_SUCCESS) {
vk_free(alloc, mem); vk_free(alloc, mem);
return vn_error(dev->instance, result); return vn_error(dev->instance, result);
@ -267,9 +267,8 @@ vn_AllocateMemory(VkDevice device,
if (need_bo && !mem->base_bo) { if (need_bo && !mem->base_bo) {
result = vn_renderer_bo_create_gpu( result = vn_renderer_bo_create_gpu(
dev->instance->renderer, mem->size, mem->base.id, dev->renderer, mem->size, mem->base.id, mem_type->propertyFlags,
mem_type->propertyFlags, export_info ? export_info->handleTypes : 0, export_info ? export_info->handleTypes : 0, &mem->base_bo);
&mem->base_bo);
if (result != VK_SUCCESS) { if (result != VK_SUCCESS) {
vn_async_vkFreeMemory(dev->instance, device, mem_handle, NULL); vn_async_vkFreeMemory(dev->instance, device, mem_handle, NULL);
vk_free(alloc, mem); vk_free(alloc, mem);
@ -433,8 +432,8 @@ vn_GetMemoryFdPropertiesKHR(VkDevice device,
return vn_error(dev->instance, VK_ERROR_INVALID_EXTERNAL_HANDLE); return vn_error(dev->instance, VK_ERROR_INVALID_EXTERNAL_HANDLE);
struct vn_renderer_bo *bo; struct vn_renderer_bo *bo;
VkResult result = vn_renderer_bo_create_dmabuf(dev->instance->renderer, 0, VkResult result =
fd, 0, handleType, &bo); vn_renderer_bo_create_dmabuf(dev->renderer, 0, fd, 0, handleType, &bo);
if (result != VK_SUCCESS) if (result != VK_SUCCESS)
return vn_error(dev->instance, result); return vn_error(dev->instance, result);
vn_instance_roundtrip(dev->instance); vn_instance_roundtrip(dev->instance);

View File

@ -365,11 +365,10 @@ vn_QueueSubmit(VkQueue _queue,
if (wsi_mem) { if (wsi_mem) {
/* XXX this is always false and kills the performance */ /* XXX this is always false and kills the performance */
if (dev->instance->renderer_info.has_implicit_fencing) { if (dev->instance->renderer_info.has_implicit_fencing) {
vn_renderer_submit(dev->instance->renderer, vn_renderer_submit(dev->renderer, &(const struct vn_renderer_submit){
&(const struct vn_renderer_submit){ .bos = &wsi_mem->base_bo,
.bos = &wsi_mem->base_bo, .bo_count = 1,
.bo_count = 1, });
});
} else { } else {
if (VN_DEBUG(WSI)) { if (VN_DEBUG(WSI)) {
static uint32_t ratelimit; static uint32_t ratelimit;