Commit e4b5cae2 authored by Greg Daniel's avatar Greg Daniel Committed by Commit Bot

Remove uses of ctors on Skia Vulkan structs.

Skia is trying to remove the use of ctors and instead just have
clients set the values on the structs they need.

Change-Id: I7a934b256068bbbfcffab06490f1178cfbd2fca4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2363712Reviewed-by: default avatarPeng Huang <penghuang@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Cr-Commit-Position: refs/heads/master@{#799620}
parent fdb80c24
...@@ -195,13 +195,17 @@ SkSurface* SkiaOutputDeviceVulkan::BeginPaint( ...@@ -195,13 +195,17 @@ SkSurface* SkiaOutputDeviceVulkan::BeginPaint(
const auto surface_format = vulkan_surface_->surface_format().format; const auto surface_format = vulkan_surface_->surface_format().format;
DCHECK(surface_format == VK_FORMAT_B8G8R8A8_UNORM || DCHECK(surface_format == VK_FORMAT_B8G8R8A8_UNORM ||
surface_format == VK_FORMAT_R8G8B8A8_UNORM); surface_format == VK_FORMAT_R8G8B8A8_UNORM);
GrVkImageInfo vk_image_info( GrVkImageInfo vk_image_info;
scoped_write_->image(), GrVkAlloc(), VK_IMAGE_TILING_OPTIMAL, vk_image_info.fImage = scoped_write_->image();
scoped_write_->image_layout(), surface_format, 1 /* level_count */, vk_image_info.fImageTiling = VK_IMAGE_TILING_OPTIMAL;
VK_QUEUE_FAMILY_IGNORED, vk_image_info.fImageLayout = scoped_write_->image_layout();
vk_image_info.fFormat = surface_format;
vk_image_info.fLevelCount = 1;
vk_image_info.fCurrentQueueFamily = VK_QUEUE_FAMILY_IGNORED;
vk_image_info.fProtected =
vulkan_surface_->swap_chain()->use_protected_memory() vulkan_surface_->swap_chain()->use_protected_memory()
? GrProtected::kYes ? GrProtected::kYes
: GrProtected::kNo); : GrProtected::kNo;
const auto& vk_image_size = vulkan_surface_->image_size(); const auto& vk_image_size = vulkan_surface_->image_size();
GrBackendRenderTarget render_target(vk_image_size.width(), GrBackendRenderTarget render_target(vk_image_size.width(),
vk_image_size.height(), vk_image_size.height(),
......
...@@ -205,13 +205,25 @@ GrVkImageInfo CreateGrVkImageInfo(VulkanImage* image) { ...@@ -205,13 +205,25 @@ GrVkImageInfo CreateGrVkImageInfo(VulkanImage* image) {
image->device_queue()->GetVulkanPhysicalDevice(); image->device_queue()->GetVulkanPhysicalDevice();
GrVkYcbcrConversionInfo gr_ycbcr_info = CreateGrVkYcbcrConversionInfo( GrVkYcbcrConversionInfo gr_ycbcr_info = CreateGrVkYcbcrConversionInfo(
physical_device, image->image_tiling(), image->ycbcr_info()); physical_device, image->image_tiling(), image->ycbcr_info());
GrVkAlloc alloc(image->device_memory(), /*offset=*/0, image->device_size(), GrVkAlloc alloc;
/*flags=*/0); alloc.fMemory = image->device_memory();
alloc.fOffset = 0;
alloc.fSize = image->device_size();
alloc.fFlags = 0;
bool is_protected = image->flags() & VK_IMAGE_CREATE_PROTECTED_BIT; bool is_protected = image->flags() & VK_IMAGE_CREATE_PROTECTED_BIT;
return GrVkImageInfo( GrVkImageInfo image_info;
image->image(), alloc, image->image_tiling(), image->image_layout(), image_info.fImage = image->image();
image->format(), /*levelCount=*/1, image->queue_family_index(), image_info.fAlloc = alloc;
is_protected ? GrProtected::kYes : GrProtected::kNo, gr_ycbcr_info); image_info.fImageTiling = image->image_tiling();
image_info.fImageLayout = image->image_layout();
image_info.fFormat = image->format();
image_info.fLevelCount = 1;
image_info.fCurrentQueueFamily = image->queue_family_index();
image_info.fProtected = is_protected ? GrProtected::kYes : GrProtected::kNo;
image_info.fYcbcrConversionInfo = gr_ycbcr_info;
return image_info;
} }
GrVkYcbcrConversionInfo CreateGrVkYcbcrConversionInfo( GrVkYcbcrConversionInfo CreateGrVkYcbcrConversionInfo(
...@@ -251,15 +263,22 @@ GrVkYcbcrConversionInfo CreateGrVkYcbcrConversionInfo( ...@@ -251,15 +263,22 @@ GrVkYcbcrConversionInfo CreateGrVkYcbcrConversionInfo(
? VK_FILTER_LINEAR ? VK_FILTER_LINEAR
: VK_FILTER_NEAREST; : VK_FILTER_NEAREST;
return GrVkYcbcrConversionInfo( GrVkYcbcrConversionInfo gr_ycbcr_info;
vk_format, ycbcr_info->external_format, gr_ycbcr_info.fFormat = vk_format;
static_cast<VkSamplerYcbcrModelConversion>( gr_ycbcr_info.fExternalFormat = ycbcr_info->external_format;
ycbcr_info->suggested_ycbcr_model), gr_ycbcr_info.fYcbcrModel = static_cast<VkSamplerYcbcrModelConversion>(
static_cast<VkSamplerYcbcrRange>(ycbcr_info->suggested_ycbcr_range), ycbcr_info->suggested_ycbcr_model);
gr_ycbcr_info.fYcbcrRange =
static_cast<VkSamplerYcbcrRange>(ycbcr_info->suggested_ycbcr_range);
gr_ycbcr_info.fXChromaOffset =
static_cast<VkChromaLocation>(ycbcr_info->suggested_xchroma_offset), static_cast<VkChromaLocation>(ycbcr_info->suggested_xchroma_offset),
gr_ycbcr_info.fYChromaOffset =
static_cast<VkChromaLocation>(ycbcr_info->suggested_ychroma_offset), static_cast<VkChromaLocation>(ycbcr_info->suggested_ychroma_offset),
chroma_filter, gr_ycbcr_info.fChromaFilter = chroma_filter;
/*forceExplicitReconstruction=*/false, format_features); gr_ycbcr_info.fForceExplicitReconstruction = false;
gr_ycbcr_info.fFormatFeatures = format_features;
return gr_ycbcr_info;
} }
#endif // BUILDFLAG(ENABLE_VULKAN) #endif // BUILDFLAG(ENABLE_VULKAN)
......
...@@ -117,7 +117,6 @@ void VulkanDemo::CreateSkSurface() { ...@@ -117,7 +117,6 @@ void VulkanDemo::CreateSkSurface() {
SkSurfaceProps(0, SkSurfaceProps::kLegacyFontHost_InitType); SkSurfaceProps(0, SkSurfaceProps::kLegacyFontHost_InitType);
GrVkImageInfo vk_image_info; GrVkImageInfo vk_image_info;
vk_image_info.fImage = scoped_write_->image(); vk_image_info.fImage = scoped_write_->image();
vk_image_info.fAlloc = {VK_NULL_HANDLE, 0, 0, 0};
vk_image_info.fImageLayout = scoped_write_->image_layout(); vk_image_info.fImageLayout = scoped_write_->image_layout();
vk_image_info.fImageTiling = VK_IMAGE_TILING_OPTIMAL; vk_image_info.fImageTiling = VK_IMAGE_TILING_OPTIMAL;
vk_image_info.fFormat = VK_FORMAT_B8G8R8A8_UNORM; vk_image_info.fFormat = VK_FORMAT_B8G8R8A8_UNORM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment