37class VulkanMemoryAllocator;
38class VulkanMutableTextureState;
39struct VulkanInterface;
71 VkDevice
device()
const {
return fDevice; }
72 VkQueue
queue()
const {
return fQueue; }
79 return fPhysDevMemProps;
103#if defined(GR_TEST_UTILS)
112 void resetShaderCacheForTesting()
const override {
113 fResourceProvider.resetShaderCacheForTesting();
118 SkISize dimensions,
int numStencilSamples)
override;
159 [[nodiscard]] std::unique_ptr<GrSemaphore>
makeSemaphore(
bool isOwned)
override;
172 void addDrawable(std::unique_ptr<SkDrawable::GpuDrawHandler> drawable);
195 const SkIRect& renderPassBounds,
196 bool forSecondaryCB);
214 uint32_t instanceVersion,
215 uint32_t physicalDeviceVersion,
218 void destroyResources();
225 std::string_view label)
override;
233 std::array<float, 4>
color)
override;
244 uint32_t newQueueFamilyIndex,
251 int renderTargetSampleCnt,
255 uint32_t levelClearMask,
256 std::string_view label)
override;
263 size_t dataSize)
override;
288 size_t rowBytes)
override;
296 bool prepForTexSampling)
override;
302 size_t size)
override;
310 size_t rowBytes)
override;
338 void prepareSurfacesForBackendAccessAndStateUpdates(
343 bool onSubmitToGpu(
GrSyncCpu sync)
override;
345 void onReportSubmitHistograms()
override;
353 bool submitCommandBuffer(SyncQueue sync);
379 bool uploadTexDataOptimal(
GrVkImage* tex,
384 bool uploadTexDataCompressed(
GrVkImage* tex,
394 bool createVkImageForBackendSurface(
VkFormat,
406 bool fDeviceIsLost =
false;
408 VkPhysicalDevice fPhysicalDevice;
411 uint32_t fQueueIndex;
437 std::unique_ptr<GrVkOpsRenderPass> fCachedOpsRenderPass;
442 using INHERITED =
GrGpu;
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
void * GrGpuFinishedContext
void(* GrGpuFinishedProc)(GrGpuFinishedContext finishedContext)
static SkColorType colorType(AImageDecoder *decoder, const AImageDecoderHeaderInfo *headerInfo)
const GrCaps * caps() const
GrGpu(GrDirectContext *direct)
std::unique_ptr< GrSemaphore > makeSemaphore(bool isOwned) override
bool setBackendTextureState(const GrBackendTexture &, const skgpu::MutableTextureState &, skgpu::MutableTextureState *previousState, sk_sp< skgpu::RefCntedCallback > finishedCallback) override
uint32_t queueIndex() const
const GrVkCaps & vkCaps() const
void onResolveRenderTarget(GrRenderTarget *target, const SkIRect &resolveRect) override
void insertSemaphore(GrSemaphore *semaphore) override
bool zeroBuffer(sk_sp< GrGpuBuffer >)
void addImageMemoryBarrier(const GrManagedResource *, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, bool byRegion, VkImageMemoryBarrier *barrier) const
bool loadMSAAFromResolve(GrVkCommandBuffer *commandBuffer, const GrVkRenderPass &renderPass, GrAttachment *dst, GrVkImage *src, const SkIRect &srcRect)
void addBufferMemoryBarrier(const GrManagedResource *, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, bool byRegion, VkBufferMemoryBarrier *barrier) const
const skgpu::VulkanInterface * vkInterface() const
void addDrawable(std::unique_ptr< SkDrawable::GpuDrawHandler > drawable)
void deleteBackendTexture(const GrBackendTexture &) override
void checkFinishProcs() override
bool beginRenderPass(const GrVkRenderPass *, sk_sp< const GrVkFramebuffer >, const VkClearValue *colorClear, const GrSurface *, const SkIRect &renderPassBounds, bool forSecondaryCB)
void disconnect(DisconnectType) override
const VkPhysicalDeviceMemoryProperties & physicalDeviceMemoryProperties() const
sk_sp< GrAttachment > makeStencilAttachment(const GrBackendFormat &, SkISize dimensions, int numStencilSamples) override
sk_sp< GrThreadSafePipelineBuilder > refPipelineBuilder() override
void endRenderPass(GrRenderTarget *target, GrSurfaceOrigin origin, const SkIRect &bounds)
GrVkResourceProvider & resourceProvider()
void waitSemaphore(GrSemaphore *semaphore) override
GrVkCommandPool * cmdPool() const
@ kPipelineCache_PersistentCacheKeyType
@ kShader_PersistentCacheKeyType
bool onRegenerateMipMapLevels(GrTexture *tex) override
GrBackendFormat getPreferredStencilFormat(const GrBackendFormat &) override
GrThreadSafePipelineBuilder * pipelineBuilder() override
bool updateBuffer(sk_sp< GrVkBuffer > buffer, const void *src, VkDeviceSize offset, VkDeviceSize size)
const VkPhysicalDeviceProperties & physicalDeviceProperties() const
bool isDeviceLost() const override
std::unique_ptr< GrSemaphore > wrapBackendSemaphore(const GrBackendSemaphore &, GrSemaphoreWrapType, GrWrapOwnership) override
std::unique_ptr< GrSemaphore > prepareTextureForCrossContextUsage(GrTexture *) override
bool compile(const GrProgramDesc &, const GrProgramInfo &) override
bool disconnected() const
static std::unique_ptr< GrGpu > Make(const skgpu::VulkanBackendContext &, const GrContextOptions &, GrDirectContext *)
VkPhysicalDevice physicalDevice() const
void storeVkPipelineCacheData() override
GrVkPrimaryCommandBuffer * currentCommandBuffer() const
void finishOutstandingGpuWork() override
sk_sp< GrAttachment > makeMSAAAttachment(SkISize dimensions, const GrBackendFormat &format, int numSamples, GrProtected isProtected, GrMemoryless isMemoryless) override
void submit(GrOpsRenderPass *) override
bool protectedContext() const
bool checkVkResult(VkResult)
void submitSecondaryCommandBuffer(std::unique_ptr< GrVkSecondaryCommandBuffer >)
GrStagingBufferManager * stagingBufferManager() override
void takeOwnershipOfBuffer(sk_sp< GrGpuBuffer >) override
void releaseUnlockedBackendObjects() override
void(* SubmitProc)(SubmitContext submitContext)
bool setBackendRenderTargetState(const GrBackendRenderTarget &, const skgpu::MutableTextureState &, skgpu::MutableTextureState *previousState, sk_sp< skgpu::RefCntedCallback > finishedCallback) override
void xferBarrier(GrRenderTarget *, GrXferBarrierType) override
skgpu::VulkanMemoryAllocator * memoryAllocator() const
void releaseUnlockedBackendObjects()
void checkCommandBuffers()
uint32_t uint32_t * format
Optional< SkRect > bounds
sk_sp< SkBlender > blender SkRect rect
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
void * VulkanDeviceLostContext
void(* VulkanDeviceLostProc)(VulkanDeviceLostContext faultContext, const std::string &description, const std::vector< VkDeviceFaultAddressInfoEXT > &addressInfos, const std::vector< VkDeviceFaultVendorInfoEXT > &vendorInfos, const std::vector< std::byte > &vendorBinaryData)
std::shared_ptr< const fml::Mapping > data
VkFlags VkPipelineStageFlags