[graphite] Fully use SampleCount in TextureInfo::Datas and ContextOptions These changes build correctly with SampleCount defined as the current pseudo-enum class and defined as a regular enum class. Bug: b/452351267 Change-Id: If47fdbb38332893c399e6c064c01ede3a183a776 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1104816 Commit-Queue: Robert Phillips <robertphillips@google.com> Commit-Queue: Michael Ludwig <michaelludwig@google.com> Auto-Submit: Michael Ludwig <michaelludwig@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/include/gpu/graphite/ContextOptions.h b/include/gpu/graphite/ContextOptions.h index 458f3b1..7d92a27 100644 --- a/include/gpu/graphite/ContextOptions.h +++ b/include/gpu/graphite/ContextOptions.h
@@ -11,6 +11,7 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/core/SkSpan.h" +#include "include/gpu/graphite/GraphiteTypes.h" #include "include/private/base/SkAPI.h" #include "include/private/base/SkMath.h" @@ -49,7 +50,7 @@ * * If <= 1, Graphite will disable internal code paths that use multisampling. */ - uint8_t fInternalMultisampleCount = 4; + SampleCount fInternalMultisampleCount = SampleCount::k4; /** * If set, this specifies the max width/height of MSAA textures that Graphite should use for
diff --git a/include/gpu/graphite/GraphiteTypes.h b/include/gpu/graphite/GraphiteTypes.h index 448f076..72b0302 100644 --- a/include/gpu/graphite/GraphiteTypes.h +++ b/include/gpu/graphite/GraphiteTypes.h
@@ -253,6 +253,18 @@ V fValue; }; +/** + * Convert an integer value to a strictly typed SampleCount value, rounding down to the lowest + * valid sample count if needed if `sampleCount` is not already equivalent. + */ +constexpr SampleCount ToSampleCount(uint32_t sampleCount) { + return sampleCount >= 16 ? SampleCount::k16 : + sampleCount >= 8 ? SampleCount::k8 : + sampleCount >= 4 ? SampleCount::k4 : + sampleCount >= 2 ? SampleCount::k2 : + SampleCount::k1; +} + /* * This enum allows mapping from a set of observed RenderSteps (e.g., from a GraphicsPipeline * printout) to the correct 'drawTypes' parameter needed by the Precompilation API.
diff --git a/include/gpu/graphite/TextureInfo.h b/include/gpu/graphite/TextureInfo.h index 3fa6d08..916176f 100644 --- a/include/gpu/graphite/TextureInfo.h +++ b/include/gpu/graphite/TextureInfo.h
@@ -46,7 +46,7 @@ public: virtual ~Data() = default; - Data(uint8_t sampleCount, skgpu::Mipmapped mipmapped) + Data(SampleCount sampleCount, skgpu::Mipmapped mipmapped) : fSampleCount(sampleCount) , fMipmapped(mipmapped) {} @@ -56,11 +56,7 @@ Data& operator=(const Data&) = default; // NOTE: These fields are accessible via the backend-specific subclasses. - - // Must be a valid SampleCount value, or TextureInfo creation will fail to wrap the backend - // specific data. This is not strongly typed so that it can be assigned directly from the - // backend GPU API's representation, which is often just an integer. - uint8_t fSampleCount = 1; + SampleCount fSampleCount = SampleCount::k1; Mipmapped fMipmapped = Mipmapped::kNo; private: @@ -95,7 +91,7 @@ Protected isProtected() const { return fProtected; } SampleCount sampleCount() const { - return fData.has_value() ? static_cast<SampleCount>(fData->fSampleCount) : SampleCount::k1; + return fData.has_value() ? fData->fSampleCount : SampleCount::k1; } Mipmapped mipmapped() const { return fData.has_value() ? fData->fMipmapped : Mipmapped::kNo; @@ -119,9 +115,6 @@ : fBackend(BackendTextureData::kBackend) , fViewFormat(data.viewFormat()) , fProtected(data.isProtected()) { - // TextureInfoPriv should not construct a TextureInfo if `data` would fail this assert. - SkASSERT(data.fSampleCount == 1 || data.fSampleCount == 2 || data.fSampleCount == 4 || - data.fSampleCount == 8 || data.fSampleCount == 16); fData.emplace<BackendTextureData>(data); }
diff --git a/include/gpu/graphite/dawn/DawnGraphiteTypes.h b/include/gpu/graphite/dawn/DawnGraphiteTypes.h index ee5ca9d..bd75f26 100644 --- a/include/gpu/graphite/dawn/DawnGraphiteTypes.h +++ b/include/gpu/graphite/dawn/DawnGraphiteTypes.h
@@ -48,7 +48,7 @@ explicit DawnTextureInfo(WGPUTexture texture); - DawnTextureInfo(uint32_t sampleCount, + DawnTextureInfo(SampleCount sampleCount, Mipmapped mipmapped, wgpu::TextureFormat format, wgpu::TextureUsage usage, @@ -61,7 +61,7 @@ aspect, /*slice=*/0) {} - DawnTextureInfo(uint32_t sampleCount, + DawnTextureInfo(SampleCount sampleCount, Mipmapped mipmapped, wgpu::TextureFormat format, wgpu::TextureFormat viewFormat, @@ -76,7 +76,7 @@ , fSlice(slice) {} #if !defined(__EMSCRIPTEN__) - DawnTextureInfo(uint32_t sampleCount, + DawnTextureInfo(SampleCount sampleCount, Mipmapped mipmapped, wgpu::TextureFormat format, wgpu::TextureFormat viewFormat,
diff --git a/include/gpu/graphite/mtl/MtlGraphiteTypes.h b/include/gpu/graphite/mtl/MtlGraphiteTypes.h index c670076..0505add 100644 --- a/include/gpu/graphite/mtl/MtlGraphiteTypes.h +++ b/include/gpu/graphite/mtl/MtlGraphiteTypes.h
@@ -35,7 +35,7 @@ MtlTextureInfo() = default; explicit MtlTextureInfo(CFTypeRef mtlTexture); - MtlTextureInfo(uint32_t sampleCount, + MtlTextureInfo(SampleCount sampleCount, skgpu::Mipmapped mipmapped, MTLPixelFormat format, MTLTextureUsage usage,
diff --git a/include/gpu/graphite/vk/VulkanGraphiteTypes.h b/include/gpu/graphite/vk/VulkanGraphiteTypes.h index 31bee40..d4bddb2 100644 --- a/include/gpu/graphite/vk/VulkanGraphiteTypes.h +++ b/include/gpu/graphite/vk/VulkanGraphiteTypes.h
@@ -46,7 +46,8 @@ VkSharingMode sharingMode, VkImageAspectFlags aspectMask, VulkanYcbcrConversionInfo ycbcrConversionInfo) - : Data(static_cast<uint8_t>(sampleCount), mipmapped) + // VkSampleCountFlagBits is value equivalent to SampleCount + : Data(static_cast<SampleCount>(sampleCount), mipmapped) , fFlags(flags) , fFormat(format) , fImageTiling(imageTiling)
diff --git a/relnotes/graphite-sample-count.md b/relnotes/graphite-sample-count.md new file mode 100644 index 0000000..d182b30 --- /dev/null +++ b/relnotes/graphite-sample-count.md
@@ -0,0 +1,4 @@ +Backend specific texture infos, e.g. `DawnTextureInfo`, +`VulkanTextureInfo`, and `MtlTextureInfo`'s `fSampleCount` field, and the +`ContextOptions::fInternalMultisampleCount` field are now `SampleCount`. A helper +function, `ToSampleCount(uint32_t) -> SampleCount` is provided if needing to convert a variable value vs. just updating a constant.
diff --git a/src/gpu/graphite/Caps.cpp b/src/gpu/graphite/Caps.cpp index 7acf9f9..aa4d09d 100644 --- a/src/gpu/graphite/Caps.cpp +++ b/src/gpu/graphite/Caps.cpp
@@ -28,9 +28,7 @@ void Caps::finishInitialization(const ContextOptions& options) { fCapabilities->initSkCaps(fShaderCaps.get()); - // Round requested sample count to the lower power of 2 and clamp to [1, 16] - fDefaultMSAASamples = static_cast<SampleCount>( - SkPrevPow2(SkTPin((int) options.fInternalMultisampleCount, 1, 16))); + fDefaultMSAASamples = options.fInternalMultisampleCount; if (options.fShaderErrorHandler) { fShaderErrorHandler = options.fShaderErrorHandler;
diff --git a/src/gpu/graphite/ResourceTypes.h b/src/gpu/graphite/ResourceTypes.h index 01a6481..b59ddea 100644 --- a/src/gpu/graphite/ResourceTypes.h +++ b/src/gpu/graphite/ResourceTypes.h
@@ -27,10 +27,6 @@ // The same goes for SampleCount SK_MAKE_BITMASK_OPS(SampleCount::V) -static constexpr bool IsValidSampleCount(uint32_t sampleCount) { - return SkIsPow2(sampleCount) && sampleCount >= 1 && sampleCount <= 16; -} - /** * There are only a few possible valid sample counts (1, 2, 4, 8, 16). So we can key on those 5 * options instead of the actual sample value. The resulting key value only requires 3 bits of space
diff --git a/src/gpu/graphite/SerializationUtils.cpp b/src/gpu/graphite/SerializationUtils.cpp index 1837c4f..6302bd1 100644 --- a/src/gpu/graphite/SerializationUtils.cpp +++ b/src/gpu/graphite/SerializationUtils.cpp
@@ -28,6 +28,10 @@ static const char kMagic[] = { 's', 'k', 'i', 'a', 'p', 'i', 'p', 'e' }; +constexpr bool is_valid_samplecount(uint32_t sampleCount) { + return SkIsPow2(sampleCount) && sampleCount >= 1 && sampleCount <= 16; +} + [[nodiscard]] bool stream_is_pipeline(SkStream* stream) { char magic[8]; static_assert(sizeof(kMagic) == sizeof(magic), ""); @@ -153,7 +157,7 @@ if (storeOp >= kStoreOpCount) { return false; } - if (!IsValidSampleCount(sampleCount)) { + if (!is_valid_samplecount(sampleCount)) { return false; } @@ -212,7 +216,7 @@ renderPassDesc->fWriteSwizzle = SwizzleCtorAccessor::Make(swizzle); uint8_t sampleCount; - if (!stream->readU8(&sampleCount) || !IsValidSampleCount(sampleCount)) { + if (!stream->readU8(&sampleCount) || !is_valid_samplecount(sampleCount)) { return false; } renderPassDesc->fSampleCount = static_cast<SampleCount>(sampleCount);
diff --git a/src/gpu/graphite/TextureInfo.cpp b/src/gpu/graphite/TextureInfo.cpp index 1f2204d..4ac6499 100644 --- a/src/gpu/graphite/TextureInfo.cpp +++ b/src/gpu/graphite/TextureInfo.cpp
@@ -64,7 +64,7 @@ TextureFormatName(fViewFormat), fData->toBackendString().c_str(), TextureFormatBytesPerBlock(fViewFormat), - fData->fSampleCount, + (unsigned) fData->fSampleCount, static_cast<int>(fData->fMipmapped), static_cast<int>(fProtected)); }
diff --git a/src/gpu/graphite/TextureInfoPriv.h b/src/gpu/graphite/TextureInfoPriv.h index 8fcae11..9f3edcf 100644 --- a/src/gpu/graphite/TextureInfoPriv.h +++ b/src/gpu/graphite/TextureInfoPriv.h
@@ -29,11 +29,6 @@ template <typename BackendTextureInfo> static TextureInfo Make(const BackendTextureInfo& data) { - // Validate that the uint8_t data.fSampleCount can be cast to a SampleCount value. If not - // then return an empty TextureInfo since the data is invalid. - if (!IsValidSampleCount(data.fSampleCount)) { - return TextureInfo(); - } return TextureInfo(data); }
diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index b2fb7dd..62ccaa3 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp
@@ -100,7 +100,7 @@ bool DawnCaps::isTexturableIgnoreSampleCount(const TextureInfo& info) const { auto overrideDawnInfo = TextureInfoPriv::Get<DawnTextureInfo>(info); - overrideDawnInfo.fSampleCount = 1; + overrideDawnInfo.fSampleCount = SampleCount::k1; TextureInfo overrideInfo = TextureInfos::MakeDawn(overrideDawnInfo); return this->isTexturable(overrideInfo); } @@ -224,7 +224,7 @@ } DawnTextureInfo info; - info.fSampleCount = (uint8_t) desc.fSampleCount; + info.fSampleCount = desc.fSampleCount; info.fMipmapped = Mipmapped::kNo; info.fFormat = TextureFormatToDawnFormat(desc.fFormat); info.fUsage = wgpu::TextureUsage::RenderAttachment; @@ -258,7 +258,7 @@ } DawnTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = format; info.fViewFormat = format; @@ -270,7 +270,7 @@ TextureInfo DawnCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, Mipmapped mipmapped) const { DawnTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = TextureInfoPriv::Get<DawnTextureInfo>(textureInfo).getViewFormat(); info.fUsage = wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopyDst | @@ -305,7 +305,7 @@ } DawnTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = format; info.fViewFormat = format; @@ -330,7 +330,7 @@ wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc; DawnTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = Mipmapped::kNo; info.fFormat = format; info.fViewFormat = format;
diff --git a/src/gpu/graphite/dawn/DawnResourceProvider.cpp b/src/gpu/graphite/dawn/DawnResourceProvider.cpp index 6c43a7a..91da296 100644 --- a/src/gpu/graphite/dawn/DawnResourceProvider.cpp +++ b/src/gpu/graphite/dawn/DawnResourceProvider.cpp
@@ -538,7 +538,7 @@ // Derive the load texture's info from MSAA texture's info. DawnTextureInfo dawnMsaaLoadTextureInfo = TextureInfoPriv::Get<DawnTextureInfo>(msaaInfo); - dawnMsaaLoadTextureInfo.fSampleCount = 1; + dawnMsaaLoadTextureInfo.fSampleCount = SampleCount::k1; dawnMsaaLoadTextureInfo.fUsage |= wgpu::TextureUsage::TextureBinding; #if !defined(__EMSCRIPTEN__)
diff --git a/src/gpu/graphite/dawn/DawnTextureInfo.cpp b/src/gpu/graphite/dawn/DawnTextureInfo.cpp index 6331e20..3c2da60 100644 --- a/src/gpu/graphite/dawn/DawnTextureInfo.cpp +++ b/src/gpu/graphite/dawn/DawnTextureInfo.cpp
@@ -16,7 +16,7 @@ DawnTextureInfo::DawnTextureInfo(WGPUTexture texture) : DawnTextureInfo( - wgpuTextureGetSampleCount(texture), + ToSampleCount(wgpuTextureGetSampleCount(texture)), wgpuTextureGetMipLevelCount(texture) > 1 ? Mipmapped::kYes : Mipmapped::kNo, /*format=*/static_cast<wgpu::TextureFormat>(wgpuTextureGetFormat(texture)), /*viewFormat=*/static_cast<wgpu::TextureFormat>(wgpuTextureGetFormat(texture)),
diff --git a/src/gpu/graphite/mtl/MtlCaps.mm b/src/gpu/graphite/mtl/MtlCaps.mm index f2bb71c..ae1da6d 100644 --- a/src/gpu/graphite/mtl/MtlCaps.mm +++ b/src/gpu/graphite/mtl/MtlCaps.mm
@@ -820,7 +820,7 @@ } MtlTextureInfo info; - info.fSampleCount = (uint8_t) desc.fSampleCount; + info.fSampleCount = desc.fSampleCount; info.fMipmapped = Mipmapped::kNo; info.fFormat = TextureFormatToMTLPixelFormat(desc.fFormat); info.fUsage = MTLTextureUsageRenderTarget; @@ -845,7 +845,7 @@ } MtlTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = format; info.fUsage = usage; @@ -858,7 +858,7 @@ TextureInfo MtlCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, Mipmapped mipmapped) const { MtlTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = TextureInfoPriv::Get<MtlTextureInfo>(textureInfo).fFormat; info.fUsage = MTLTextureUsageShaderRead; @@ -902,7 +902,7 @@ } MtlTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = format; info.fUsage = usage; @@ -925,7 +925,7 @@ } MtlTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = Mipmapped::kNo; info.fFormat = format; info.fUsage = MTLTextureUsageShaderWrite | MTLTextureUsageShaderRead;
diff --git a/src/gpu/graphite/mtl/MtlTextureInfo.mm b/src/gpu/graphite/mtl/MtlTextureInfo.mm index c757e11..f255742 100644 --- a/src/gpu/graphite/mtl/MtlTextureInfo.mm +++ b/src/gpu/graphite/mtl/MtlTextureInfo.mm
@@ -23,7 +23,7 @@ SkASSERT(texture); id<MTLTexture> mtlTex = (id<MTLTexture>)texture; - fSampleCount = mtlTex.sampleCount; + fSampleCount = ToSampleCount(mtlTex.sampleCount); fMipmapped = mtlTex.mipmapLevelCount > 1 ? Mipmapped::kYes : Mipmapped::kNo; fFormat = mtlTex.pixelFormat;
diff --git a/src/gpu/graphite/vk/VulkanCaps.cpp b/src/gpu/graphite/vk/VulkanCaps.cpp index e743bd5..25a9f18 100644 --- a/src/gpu/graphite/vk/VulkanCaps.cpp +++ b/src/gpu/graphite/vk/VulkanCaps.cpp
@@ -726,7 +726,7 @@ } VulkanTextureInfo info; - info.fSampleCount = (uint8_t) desc.fSampleCount; + info.fSampleCount = desc.fSampleCount; info.fMipmapped = Mipmapped::kNo; info.fFlags = createFlags; info.fFormat = TextureFormatToVkFormat(desc.fFormat); @@ -753,7 +753,7 @@ } VulkanTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFlags = (isProtected == Protected::kYes) ? VK_IMAGE_CREATE_PROTECTED_BIT : 0; info.fFormat = format; @@ -787,7 +787,7 @@ TextureInfo VulkanCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, Mipmapped mipmapped) const { VulkanTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFormat = TextureInfoPriv::Get<VulkanTextureInfo>(textureInfo).fFormat; info.fFlags = (textureInfo.isProtected() == Protected::kYes) ? @@ -831,7 +831,7 @@ } VulkanTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = mipmapped; info.fFlags = (isProtected == Protected::kYes) ? VK_IMAGE_CREATE_PROTECTED_BIT : 0; info.fFormat = format; @@ -857,7 +857,7 @@ } VulkanTextureInfo info; - info.fSampleCount = 1; + info.fSampleCount = SampleCount::k1; info.fMipmapped = Mipmapped::kNo; info.fFlags = 0; info.fFormat = format; @@ -1997,7 +1997,6 @@ } bool VulkanCaps::isRenderable(const VulkanTextureInfo& vkInfo) const { - SkASSERT(IsValidSampleCount(vkInfo.fSampleCount)); const FormatInfo& info = this->getFormatInfo(vkInfo.fFormat); // All renderable vulkan textures within graphite must also support input attachment usage return info.isRenderable(vkInfo.fImageTiling, (SampleCount) vkInfo.fSampleCount) && @@ -2022,7 +2021,7 @@ return false; } - if (vkInfo.fSampleCount > 1) { + if (vkInfo.fSampleCount > SampleCount::k1) { return false; } @@ -2049,7 +2048,7 @@ return false; } - if (vkInfo.fSampleCount > 1) { + if (vkInfo.fSampleCount > SampleCount::k1) { return false; }
diff --git a/tests/graphite/DawnBackendTextureTest.cpp b/tests/graphite/DawnBackendTextureTest.cpp index e7bfc3c..e8fac71 100644 --- a/tests/graphite/DawnBackendTextureTest.cpp +++ b/tests/graphite/DawnBackendTextureTest.cpp
@@ -28,7 +28,7 @@ auto recorder = context->makeRecorder(); DawnTextureInfo textureInfo; - textureInfo.fSampleCount = 1; + textureInfo.fSampleCount = SampleCount::k1; textureInfo.fMipmapped = skgpu::Mipmapped::kNo; textureInfo.fFormat = wgpu::TextureFormat::RGBA8Unorm; textureInfo.fUsage = wgpu::TextureUsage::TextureBinding; @@ -52,7 +52,7 @@ auto recorder = context->makeRecorder(); DawnTextureInfo textureInfo; - textureInfo.fSampleCount = 1; + textureInfo.fSampleCount = SampleCount::k1; textureInfo.fMipmapped = skgpu::Mipmapped::kNo; textureInfo.fFormat = wgpu::TextureFormat::RGBA8Unorm; textureInfo.fUsage = wgpu::TextureUsage::TextureBinding;
diff --git a/tests/graphite/MtlBackendTextureTest.mm b/tests/graphite/MtlBackendTextureTest.mm index 5c4172d..0992835 100644 --- a/tests/graphite/MtlBackendTextureTest.mm +++ b/tests/graphite/MtlBackendTextureTest.mm
@@ -24,7 +24,7 @@ auto recorder = context->makeRecorder(); MtlTextureInfo textureInfo; - textureInfo.fSampleCount = 1; + textureInfo.fSampleCount = SampleCount::k1; textureInfo.fMipmapped = skgpu::Mipmapped::kNo; textureInfo.fFormat = MTLPixelFormatRGBA8Unorm; textureInfo.fStorageMode = MTLStorageModePrivate; @@ -53,7 +53,7 @@ // It should fail with a sample count greater than 1 textureInfo.fFormat = MTLPixelFormatRGBA8Unorm; - textureInfo.fSampleCount = 4; + textureInfo.fSampleCount = SampleCount::k4; beTexture = recorder->createBackendTexture(kSize, TextureInfos::MakeMetal(textureInfo)); REPORTER_ASSERT(reporter, !beTexture.isValid()); recorder->deleteBackendTexture(beTexture);
diff --git a/tests/graphite/VulkanBackendTextureTest.cpp b/tests/graphite/VulkanBackendTextureTest.cpp index 0e856fa..2777b4c5e 100644 --- a/tests/graphite/VulkanBackendTextureTest.cpp +++ b/tests/graphite/VulkanBackendTextureTest.cpp
@@ -28,7 +28,7 @@ bool isProtected = context->priv().caps()->protectedSupport(); VulkanTextureInfo textureInfo; - textureInfo.fSampleCount = 1; + textureInfo.fSampleCount = SampleCount::k1; textureInfo.fMipmapped = skgpu::Mipmapped::kNo; textureInfo.fFlags = isProtected ? VK_IMAGE_CREATE_PROTECTED_BIT : 0; textureInfo.fFormat = VK_FORMAT_R8G8B8A8_UNORM; @@ -55,7 +55,7 @@ bool isProtected = context->priv().caps()->protectedSupport(); VulkanTextureInfo textureInfo; - textureInfo.fSampleCount = 1; + textureInfo.fSampleCount = SampleCount::k1; textureInfo.fMipmapped = skgpu::Mipmapped::kNo; textureInfo.fFlags = isProtected ? VK_IMAGE_CREATE_PROTECTED_BIT : 0; textureInfo.fFormat = VK_FORMAT_R8G8B8A8_UNORM;
diff --git a/tools/flags/CommonFlagsGraphite.cpp b/tools/flags/CommonFlagsGraphite.cpp index c06585a..76ebf3a 100644 --- a/tools/flags/CommonFlagsGraphite.cpp +++ b/tools/flags/CommonFlagsGraphite.cpp
@@ -35,7 +35,8 @@ testOptions->fContextOptions.fExecutor = gGpuExecutor.get(); if (FLAGS_internalSamples >= 0) { - testOptions->fContextOptions.fInternalMultisampleCount = FLAGS_internalSamples; + testOptions->fContextOptions.fInternalMultisampleCount = + skgpu::graphite::ToSampleCount(FLAGS_internalSamples); } if (FLAGS_internalMSAATileSize > 0) { testOptions->fContextOptions.fInternalMSAATileSize = {FLAGS_internalMSAATileSize,
diff --git a/tools/gpu/BackendSurfaceFactory.cpp b/tools/gpu/BackendSurfaceFactory.cpp index 1d88bd8..dbfce09 100644 --- a/tools/gpu/BackendSurfaceFactory.cpp +++ b/tools/gpu/BackendSurfaceFactory.cpp
@@ -179,7 +179,7 @@ textureInfo.fAspect = wgpu::TextureAspect::All; textureInfo.fFormat = texture.GetFormat(); textureInfo.fMipmapped = mipmapped; - textureInfo.fSampleCount = texture.GetSampleCount(); + textureInfo.fSampleCount = skgpu::graphite::ToSampleCount(texture.GetSampleCount()); textureInfo.fUsage = texture.GetUsage(); skgpu::graphite::BackendTexture betFromView =
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 7bfe154..d5bccb0 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp
@@ -220,7 +220,6 @@ static DEFINE_int(msaa, 1, "Number of subpixel samples. 0 for no HW antialiasing."); static DEFINE_bool(dmsaa, false, "Use internal MSAA to render to non-MSAA surfaces?"); -static DEFINE_int(msaa_tile_size, 0, "Tile size of MSAA rendering."); static DEFINE_string(bisect, "", "Path to a .skp or .svg file to bisect."); @@ -668,11 +667,8 @@ CommonFlags::SetTestOptions(>o.fTestOptions); gto.fPriv.fPathRendererStrategy = get_path_renderer_strategy_type(FLAGS_pathstrategy[0]); if (FLAGS_msaa <= 0) { - gto.fTestOptions.fContextOptions.fInternalMultisampleCount = 1; - } - if (FLAGS_msaa_tile_size > 0) { - gto.fTestOptions.fContextOptions.fInternalMSAATileSize = {FLAGS_msaa_tile_size, - FLAGS_msaa_tile_size}; + gto.fTestOptions.fContextOptions.fInternalMultisampleCount = + skgpu::graphite::SampleCount::k1; } paramsBuilder.graphiteTestOptions(gto); #endif
diff --git a/tools/window/GraphiteDawnWindowContext.cpp b/tools/window/GraphiteDawnWindowContext.cpp index 3f613fd..3306ad6 100644 --- a/tools/window/GraphiteDawnWindowContext.cpp +++ b/tools/window/GraphiteDawnWindowContext.cpp
@@ -106,7 +106,7 @@ SkASSERT(surfaceTexture.texture); auto texture = surfaceTexture.texture; - skgpu::graphite::DawnTextureInfo info(/*sampleCount=*/1, + skgpu::graphite::DawnTextureInfo info(skgpu::graphite::SampleCount::k1, skgpu::Mipmapped::kNo, fSurfaceFormat, texture.GetUsage(),