dev->hdpi = 72;
dev->vdpi = 72;
dev->samples= samples;
- dev->deferredResolve = deferredResolve;
+ if (dev->samples == VK_SAMPLE_COUNT_1_BIT)
+ dev->deferredResolve = false;
+ else
+ dev->deferredResolve = deferredResolve;
dev->vkDev = vkdev;
dev->phy = phy;
_device_create_pipeline_cache (dev);
_fonts_cache_create (dev);
if (dev->deferredResolve || dev->samples == VK_SAMPLE_COUNT_1_BIT){
- 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);
+ 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 = _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);
+ 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);
}
_device_createDescriptorSetLayout (dev);
_device_setupPipelines (dev);
_explicit_ms_resolve(surf);
return vkh_image_get_vkimage (surf->img);
}
-void vkvg_multisample_surface_resolve (VkvgSurface surf){
+void vkvg_surface_resolve (VkvgSurface surf){
+ if (surf->status || !surf->dev->deferredResolve)
+ return;
_explicit_ms_resolve(surf);
}
VkFormat vkvg_surface_get_vk_format(VkvgSurface surf)
LOG(VKVG_LOG_ERR, "vkvg_surface_write_to_png failed, invalid status: %d\n", surf->status);
return VKVG_STATUS_INVALID_STATUS;
}
+ if (surf->dev->status) {
+ LOG(VKVG_LOG_ERR, "vkvg_surface_write_to_png failed, invalid device status: %d\n", surf->dev->status);
+ return VKVG_STATUS_INVALID_STATUS;
+ }
if (surf->dev->pngStagFormat == VK_FORMAT_UNDEFINED) {
LOG(VKVG_LOG_ERR, "no suitable image format for png write\n");
return VKVG_STATUS_INVALID_FORMAT;
_create_surface_secondary_images(surf);
_create_framebuffer (surf);
- //_clear_surface (surf, VK_IMAGE_ASPECT_STENCIL_BIT);
#if defined(DEBUG) && defined(ENABLE_VALIDATION)
vkh_image_set_name(surf->img, "surfImg");
vkh_image_set_name(surf->imgMS, "surfImgMS");