Lines Matching defs:device
213 lvp_physical_device_init(struct lvp_physical_device *device,
224 result = vk_physical_device_init(&device->vk, &instance->vk,
230 device->pld = pld;
232 device->pscreen = pipe_loader_create_screen_vk(device->pld, true);
233 if (!device->pscreen)
236 device->sync_timeline_type = vk_sync_timeline_get_type(&lvp_pipe_sync_type);
237 device->sync_types[0] = &lvp_pipe_sync_type;
238 device->sync_types[1] = &device->sync_timeline_type.sync;
239 device->sync_types[2] = NULL;
240 device->vk.supported_sync_types = device->sync_types;
242 device->max_images = device->pscreen->get_shader_param(device->pscreen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_MAX_SHADER_IMAGES);
243 device->vk.supported_extensions = lvp_device_extensions_supported;
250 device->pscreen->get_compute_param(device->pscreen, PIPE_SHADER_IR_NIR,
252 device->pscreen->get_compute_param(device->pscreen, PIPE_SHADER_IR_NIR,
254 device->pscreen->get_compute_param(device->pscreen, PIPE_SHADER_IR_NIR,
257 device->pscreen->get_compute_param(device->pscreen, PIPE_SHADER_IR_NIR,
261 const uint64_t max_render_targets = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_RENDER_TARGETS);
262 device->device_limits = (VkPhysicalDeviceLimits) {
263 .maxImageDimension1D = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_2D_SIZE),
264 .maxImageDimension2D = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_2D_SIZE),
265 .maxImageDimension3D = (1 << device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_3D_LEVELS)),
266 .maxImageDimensionCube = (1 << device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS)),
267 .maxImageArrayLayers = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS),
268 .maxTexelBufferElements = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXEL_BUFFER_ELEMENTS_UINT),
269 .maxUniformBufferRange = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE),
270 .maxStorageBufferRange = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_SHADER_BUFFER_SIZE_UINT),
277 .maxPerStageDescriptorSamplers = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS),
278 .maxPerStageDescriptorUniformBuffers = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_CONST_BUFFERS) - 1,
279 .maxPerStageDescriptorStorageBuffers = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_SHADER_BUFFERS),
280 .maxPerStageDescriptorSampledImages = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS),
281 .maxPerStageDescriptorStorageImages = min_shader_param(device->pscreen, PIPE_SHADER_CAP_MAX_SHADER_IMAGES),
305 .maxGeometryShaderInvocations = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_GS_INVOCATIONS),
308 .maxGeometryOutputVertices = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES),
309 .maxGeometryTotalOutputComponents = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS),
314 device->pscreen->get_shader_param(device->pscreen, PIPE_SHADER_FRAGMENT,
316 device->pscreen->get_shader_param(device->pscreen, PIPE_SHADER_FRAGMENT,
322 .subPixelPrecisionBits = device->pscreen->get_param(device->pscreen, PIPE_CAP_RASTERIZER_SUBPIXEL_BITS),
329 .maxViewports = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_VIEWPORTS),
332 .viewportSubPixelBits = device->pscreen->get_param(device->pscreen, PIPE_CAP_VIEWPORT_SUBPIXEL_BITS),
333 .minMemoryMapAlignment = device->pscreen->get_param(device->pscreen, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT),
334 .minTexelBufferOffsetAlignment = device->pscreen->get_param(device->pscreen, PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT),
335 .minUniformBufferOffsetAlignment = device->pscreen->get_param(device->pscreen, PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT),
336 .minStorageBufferOffsetAlignment = device->pscreen->get_param(device->pscreen, PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT),
337 .minTexelOffset = device->pscreen->get_param(device->pscreen, PIPE_CAP_MIN_TEXEL_OFFSET),
338 .maxTexelOffset = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXEL_OFFSET),
339 .minTexelGatherOffset = device->pscreen->get_param(device->pscreen, PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET),
340 .maxTexelGatherOffset = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET),
344 .maxFramebufferWidth = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_2D_SIZE),
345 .maxFramebufferHeight = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_2D_SIZE),
346 .maxFramebufferLayers = device->pscreen->get_param(device->pscreen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS),
364 .pointSizeRange = { 0.0, device->pscreen->get_paramf(device->pscreen, PIPE_CAPF_MAX_POINT_SIZE) },
365 .lineWidthRange = { 1.0, device->pscreen->get_paramf(device->pscreen, PIPE_CAPF_MAX_LINE_WIDTH) },
374 result = lvp_init_wsi(device);
376 vk_physical_device_finish(&device->vk);
387 lvp_physical_device_finish(struct lvp_physical_device *device)
389 lvp_finish_wsi(device);
390 device->pscreen->destroy(device->pscreen);
391 vk_physical_device_finish(&device->vk);
1431 lvp_pipeline_destroy(queue->device, util_dynarray_pop(&queue->pipeline_destroys, struct lvp_pipeline*));
1442 VkResult result = vk_sync_wait_many(&queue->device->vk,
1452 lvp_execute_cmds(queue->device, queue, cmd_buffer);
1461 lvp_pipe_sync_signal_with_fence(queue->device, sync, queue->last_fence);
1469 lvp_queue_init(struct lvp_device *device, struct lvp_queue *queue,
1473 VkResult result = vk_queue_init(&queue->vk, &device->vk, create_info,
1484 queue->device = device;
1486 queue->ctx = device->pscreen->context_create(device->pscreen, NULL, PIPE_CONTEXT_ROBUST_BUFFER_ACCESS);
1519 struct lvp_device *device;
1525 device = vk_zalloc2(&physical_device->vk.instance->alloc, pAllocator,
1526 sizeof(*device) + state_size, 8,
1528 if (!device)
1531 device->queue.state = device + 1;
1532 device->poison_mem = debug_get_bool_option("LVP_POISON_MEMORY", false);
1540 VkResult result = vk_device_init(&device->vk,
1545 vk_free(&device->vk.alloc, device);
1549 vk_device_enable_threaded_submit(&device->vk);
1551 device->instance = (struct lvp_instance *)physical_device->vk.instance;
1552 device->physical_device = physical_device;
1554 device->pscreen = physical_device->pscreen;
1559 result = lvp_queue_init(device, &device->queue, pCreateInfo->pQueueCreateInfos, 0);
1561 vk_free(&device->vk.alloc, device);
1565 *pDevice = lvp_device_to_handle(device);
1575 LVP_FROM_HANDLE(lvp_device, device, _device);
1577 if (device->queue.last_fence)
1578 device->pscreen->fence_reference(device->pscreen, &device->queue.last_fence, NULL);
1579 lvp_queue_finish(&device->queue);
1580 vk_device_finish(&device->vk);
1581 vk_free(&device->vk.alloc, device);
1629 LVP_FROM_HANDLE(lvp_device, device, _device);
1664 return vk_error(device->instance, VK_ERROR_INVALID_EXTERNAL_HANDLE);
1668 mem = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*mem), 8,
1671 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
1673 vk_object_base_init(&device->vk, &mem->base,
1686 if(!device->pscreen->import_memory_fd(device->pscreen, import_info->fd, &mem->pmem, &size)) {
1692 device->pscreen->free_memory_fd(device->pscreen, mem->pmem);
1705 mem->pmem = device->pscreen->allocate_memory_fd(device->pscreen, pAllocateInfo->allocationSize, &mem->backed_fd);
1713 mem->pmem = device->pscreen->allocate_memory(device->pscreen, pAllocateInfo->allocationSize);
1717 if (device->poison_mem)
1729 vk_free2(&device->vk.alloc, pAllocator, mem);
1730 return vk_error(device, error);
1738 LVP_FROM_HANDLE(lvp_device, device, _device);
1746 device->pscreen->free_memory(device->pscreen, mem->pmem);
1750 device->pscreen->free_memory_fd(device->pscreen, mem->pmem);
1760 vk_free2(&device->vk.alloc, pAllocator, mem);
1772 LVP_FROM_HANDLE(lvp_device, device, _device);
1780 map = device->pscreen->map_memory(device->pscreen, mem->pmem);
1790 LVP_FROM_HANDLE(lvp_device, device, _device);
1796 device->pscreen->unmap_memory(device->pscreen, mem->pmem);
1833 VkDevice device,
1860 VkDevice device,
1871 * structure for the physical device is supported.
1882 VkDevice device,
1886 lvp_GetBufferMemoryRequirements(device, pInfo->buffer,
1904 VkDevice device,
1916 VkDevice device,
1920 lvp_GetImageMemoryRequirements(device, pInfo->image,
1939 VkDevice device,
1948 VkDevice device,
1957 VkDevice device,
1968 LVP_FROM_HANDLE(lvp_device, device, _device);
1974 device->pscreen->resource_bind_backing(device->pscreen,
1986 LVP_FROM_HANDLE(lvp_device, device, _device);
2004 device->pscreen->resource_bind_backing(device->pscreen,
2017 if (!device->pscreen->resource_bind_backing(device->pscreen,
2025 return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY);
2055 LVP_FROM_HANDLE(lvp_device, device, _device);
2064 return vk_error(device->instance, VK_ERROR_INVALID_EXTERNAL_HANDLE);
2085 LVP_FROM_HANDLE(lvp_device, device, _device);
2086 struct lvp_event *event = vk_alloc2(&device->vk.alloc, pAllocator,
2091 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
2093 vk_object_base_init(&device->vk, &event->base, VK_OBJECT_TYPE_EVENT);
2105 LVP_FROM_HANDLE(lvp_device, device, _device);
2112 vk_free2(&device->vk.alloc, pAllocator, event);
2151 LVP_FROM_HANDLE(lvp_device, device, _device);
2159 sampler = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*sampler), 8,
2162 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
2164 vk_object_base_init(&device->vk, &sampler->base,
2187 LVP_FROM_HANDLE(lvp_device, device, _device);
2193 vk_free2(&device->vk.alloc, pAllocator, sampler);
2197 VkDevice device,
2206 VkDevice device,
2271 LVP_FROM_HANDLE(lvp_device, device, _device);
2272 return vk_private_data_slot_create(&device->vk, pCreateInfo, pAllocator,
2281 LVP_FROM_HANDLE(lvp_device, device, _device);
2282 vk_private_data_slot_destroy(&device->vk, privateDataSlot, pAllocator);
2292 LVP_FROM_HANDLE(lvp_device, device, _device);
2293 return vk_object_base_set_private_data(&device->vk, objectType,
2305 LVP_FROM_HANDLE(lvp_device, device, _device);
2306 vk_object_base_get_private_data(&device->vk, objectType, objectHandle,
2354 VkDevice device,
2370 VkDevice device,