VkFormat format = FB_COLOR_FORMAT;
- _check_best_image_tiling(dev, format);
+ _device_check_best_image_tiling(dev, format);
if (dev->status != VKVG_STATUS_SUCCESS)
return;
- if (!_init_function_pointers (dev)){
+ if (!_device_init_function_pointers (dev)){
dev->status = VKVG_STATUS_NULL_POINTER;
return;
}
dev->cmd = vkh_cmd_buff_create ((VkhDevice)dev, dev->cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
dev->fence = vkh_fence_create_signaled ((VkhDevice)dev);
- _create_pipeline_cache (dev);
+ _device_create_pipeline_cache (dev);
_init_fonts_cache (dev);
if (dev->deferredResolve || dev->samples == VK_SAMPLE_COUNT_1_BIT){
- dev->renderPass = _createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_LOAD);
- dev->renderPass_ClearStencil = _createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_CLEAR);
- dev->renderPass_ClearAll = _createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_CLEAR);
+ dev->renderPass = _device_createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_LOAD);
+ dev->renderPass_ClearStencil = _device_createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_CLEAR);
+ dev->renderPass_ClearAll = _device_createRenderPassNoResolve (dev, VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_CLEAR);
}else{
- dev->renderPass = _createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_LOAD);
- dev->renderPass_ClearStencil = _createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_CLEAR);
- dev->renderPass_ClearAll = _createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_CLEAR);
+ dev->renderPass = _device_createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_LOAD);
+ dev->renderPass_ClearStencil = _device_createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_CLEAR);
+ dev->renderPass_ClearAll = _device_createRenderPassMS (dev, VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_CLEAR);
}
- _createDescriptorSetLayout (dev);
- _setupPipelines (dev);
+ _device_createDescriptorSetLayout (dev);
+ _device_setupPipelines (dev);
- _create_empty_texture (dev, format, dev->supportedTiling);
+ _device_create_empty_texture (dev, format, dev->supportedTiling);
#ifdef DEBUG
#if __linux__
}
VkhPhyInfo pi = 0;
- if (!_try_get_phyinfo(phys, phyCount, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, &pi))
- if (!_try_get_phyinfo(phys, phyCount, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, &pi))
+ if (!_device_try_get_phyinfo(phys, phyCount, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, &pi))
+ if (!_device_try_get_phyinfo(phys, phyCount, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, &pi))
pi = phys[0];
if (!(pi->properties.limits.framebufferColorSampleCounts&samples)) {
PFN_vkResetFences ResetFences;
PFN_vkResetCommandBuffer ResetCommandBuffer;
-bool _try_get_phyinfo (VkhPhyInfo* phys, uint32_t phyCount, VkPhysicalDeviceType gpuType, VkhPhyInfo* phy) {
+bool _device_try_get_phyinfo (VkhPhyInfo* phys, uint32_t phyCount, VkPhysicalDeviceType gpuType, VkhPhyInfo* phy) {
for (uint32_t i=0; i<phyCount; i++){
if (vkh_phyinfo_get_properties(phys[i]).deviceType == gpuType) {
*phy = phys[i];
}*/
}
//TODO:save/reload cache in user temp directory
-void _create_pipeline_cache(VkvgDevice dev){
+void _device_create_pipeline_cache(VkvgDevice dev){
VkPipelineCacheCreateInfo pipelineCacheCreateInfo = {.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO};
VK_CHECK_RESULT(vkCreatePipelineCache(dev->vkDev, &pipelineCacheCreateInfo, NULL, &dev->pipelineCache));
}
-VkRenderPass _createRenderPassNoResolve(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp)
+VkRenderPass _device_createRenderPassNoResolve(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp)
{
VkAttachmentDescription attColor = {
.format = FB_COLOR_FORMAT,
VK_CHECK_RESULT(vkCreateRenderPass(dev->vkDev, &renderPassInfo, NULL, &rp));
return rp;
}
-VkRenderPass _createRenderPassMS(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp)
+VkRenderPass _device_createRenderPassMS(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp)
{
VkAttachmentDescription attColor = {
.format = FB_COLOR_FORMAT,
return rp;
}
-void _setupPipelines(VkvgDevice dev)
+void _device_setupPipelines(VkvgDevice dev)
{
VkGraphicsPipelineCreateInfo pipelineCreateInfo = { .sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
.renderPass = dev->renderPass };
vkDestroyShaderModule(dev->vkDev, modFrag, NULL);
}
-void _createDescriptorSetLayout (VkvgDevice dev) {
+void _device_createDescriptorSetLayout (VkvgDevice dev) {
VkDescriptorSetLayoutBinding dsLayoutBinding =
{0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1,VK_SHADER_STAGE_FRAGMENT_BIT, NULL};
UNLOCK_DEVICE
}
-bool _init_function_pointers (VkvgDevice dev) {
+bool _device_init_function_pointers (VkvgDevice dev) {
#if defined(DEBUG) && defined (VKVG_DBG_UTILS)
if (vkGetInstanceProcAddr(dev->instance, "vkSetDebugUtilsObjectNameEXT")==VK_NULL_HANDLE){
LOG(VKVG_LOG_ERR, "vkvg create device failed: 'VK_EXT_debug_utils' has to be loaded for Debug build\n");
return true;
}
-void _create_empty_texture (VkvgDevice dev, VkFormat format, VkImageTiling tiling) {
+void _device_create_empty_texture (VkvgDevice dev, VkFormat format, VkImageTiling tiling) {
//create empty image to bind to context source descriptor when not in use
dev->emptyImg = vkh_image_create((VkhDevice)dev,format,16,16,tiling,VMA_MEMORY_USAGE_GPU_ONLY,
VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT);
_device_submit_cmd (dev, &dev->cmd, dev->fence);
}
-void _check_best_image_tiling (VkvgDevice dev, VkFormat format) {
+void _device_check_best_image_tiling (VkvgDevice dev, VkFormat format) {
VkFlags stencilFormats[] = { VK_FORMAT_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT };
VkFormatProperties phyStencilProps = { 0 }, phyImgProps = { 0 };
if (dev->threadAware)\
mtx_unlock (&dev->mutex);
-bool _try_get_phyinfo (VkhPhyInfo* phys, uint32_t phyCount, VkPhysicalDeviceType gpuType, VkhPhyInfo* phy);
-bool _init_function_pointers (VkvgDevice dev);
-void _create_empty_texture (VkvgDevice dev, VkFormat format, VkImageTiling tiling);
-void _get_best_image_tiling (VkvgDevice dev, VkFormat format, VkImageTiling* pTiling);
-void _check_best_image_tiling (VkvgDevice dev, VkFormat format);
-void _create_pipeline_cache (VkvgDevice dev);
-VkRenderPass _createRenderPassMS(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp);
-VkRenderPass _createRenderPassNoResolve(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp);
-void _setupPipelines (VkvgDevice dev);
-void _device_createDescriptorSetLayout (VkvgDevice dev);
-void _device_flush_all_contexes (VkvgDevice dev);
+bool _device_try_get_phyinfo (VkhPhyInfo* phys, uint32_t phyCount, VkPhysicalDeviceType gpuType, VkhPhyInfo* phy);
+bool _device_init_function_pointers (VkvgDevice dev);
+void _device_create_empty_texture (VkvgDevice dev, VkFormat format, VkImageTiling tiling);
+void _device_get_best_image_tiling (VkvgDevice dev, VkFormat format, VkImageTiling* pTiling);
+void _device_check_best_image_tiling (VkvgDevice dev, VkFormat format);
+void _device_create_pipeline_cache (VkvgDevice dev);
+VkRenderPass _device_createRenderPassMS (VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp);
+VkRenderPass _device_createRenderPassNoResolve(VkvgDevice dev, VkAttachmentLoadOp loadOp, VkAttachmentLoadOp stencilLoadOp);
+void _device_setupPipelines (VkvgDevice dev);
+void _device_createDescriptorSetLayout (VkvgDevice dev);
+void _device_flush_all_contexes (VkvgDevice dev);
void _device_wait_idle (VkvgDevice dev);
-void _device_wait_and_reset_device_fence (VkvgDevice dev);
-void _device_submit_cmd (VkvgDevice dev, VkCommandBuffer* cmd, VkFence fence);
-
-void _device_destroy_fence (VkvgDevice dev, VkFence fence);
-void _device_reset_fence (VkvgDevice dev, VkFence fence);
-void _device_wait_fence (VkvgDevice dev, VkFence fence);
-void _device_wait_and_reset_fence (VkvgDevice dev, VkFence fence);
-bool _device_try_get_cached_context(VkvgDevice dev, VkvgContext* pCtx);
-void _device_store_context (VkvgContext ctx);
+void _device_wait_and_reset_device_fence(VkvgDevice dev);
+void _device_submit_cmd (VkvgDevice dev, VkCommandBuffer* cmd, VkFence fence);
+
+void _device_destroy_fence (VkvgDevice dev, VkFence fence);
+void _device_reset_fence (VkvgDevice dev, VkFence fence);
+void _device_wait_fence (VkvgDevice dev, VkFence fence);
+void _device_wait_and_reset_fence (VkvgDevice dev, VkFence fence);
+bool _device_try_get_cached_context (VkvgDevice dev, VkvgContext* pCtx);
+void _device_store_context (VkvgContext ctx);
#endif