Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
VulkanGraphiteUtilsPriv.h File Reference
#include "include/core/SkSpan.h"
#include "include/gpu/vk/VulkanTypes.h"
#include "src/gpu/graphite/DescriptorData.h"
#include "src/gpu/graphite/Log.h"
#include "src/gpu/vk/VulkanInterface.h"
#include <string>

Go to the source code of this file.

Namespaces

namespace  skgpu
 
namespace  skgpu::graphite
 

Macros

#define VULKAN_CALL(IFACE, X)   (IFACE)->fFunctions.f##X
 
#define VULKAN_LOG_IF_NOT_SUCCESS(SHARED_CONTEXT, RESULT, X, ...)
 
#define VULKAN_CALL_RESULT(SHARED_CONTEXT, RESULT, X)
 
#define VULKAN_CALL_ERRCHECK(SHARED_CONTEXT, X)
 
#define VULKAN_CALL_RESULT_NOCHECK(IFACE, RESULT, X)
 

Functions

VkShaderModule skgpu::graphite::createVulkanShaderModule (const VulkanSharedContext *context, const std::string &spirv, VkShaderStageFlagBits stage)
 
VkDescriptorType skgpu::graphite::DsTypeEnumToVkDs (DescriptorType type)
 
void skgpu::graphite::DescriptorDataToVkDescSetLayout (const VulkanSharedContext *ctxt, const SkSpan< DescriptorData > &requestedDescriptors, VkDescriptorSetLayout *outLayout)
 
bool skgpu::graphite::vkFormatIsSupported (VkFormat format)
 
VkShaderStageFlags skgpu::graphite::PipelineStageFlagsToVkShaderStageFlags (SkEnumBitMask< PipelineStageFlags > stageFlags)
 

Macro Definition Documentation

◆ VULKAN_CALL

#define VULKAN_CALL (   IFACE,
  X 
)    (IFACE)->fFunctions.f##X

Definition at line 22 of file VulkanGraphiteUtilsPriv.h.

◆ VULKAN_CALL_ERRCHECK

#define VULKAN_CALL_ERRCHECK (   SHARED_CONTEXT,
  X 
)
Value:
VULKAN_CALL_RESULT(SHARED_CONTEXT, SK_MACRO_APPEND_LINE(ret), X)
#define SK_MACRO_APPEND_LINE(name)
Definition SkMacros.h:25
static const SkScalar X
VkResult

Definition at line 42 of file VulkanGraphiteUtilsPriv.h.

46 { \
47 (RESULT) = VULKAN_CALL(IFACE, X); \
48 } while (false)
49namespace skgpu::graphite {
50
51class VulkanSharedContext;
52
53VkShaderModule createVulkanShaderModule(const VulkanSharedContext*,
54 const std::string& spirv,
56
58void DescriptorDataToVkDescSetLayout(const VulkanSharedContext*,
60 VkDescriptorSetLayout*);
61
63
65
66} // namespace skgpu::graphite
67
68#endif // skgpu_graphite_VulkanGraphiteUtilsPriv_DEFINED
#define RESULT(Op)
#define VULKAN_CALL(IFACE, X)
VkShaderModule createVulkanShaderModule(const VulkanSharedContext *context, const std::string &spirv, VkShaderStageFlagBits stage)
VkDescriptorType DsTypeEnumToVkDs(DescriptorType type)
bool vkFormatIsSupported(VkFormat format)
void DescriptorDataToVkDescSetLayout(const VulkanSharedContext *ctxt, const SkSpan< DescriptorData > &requestedDescriptors, VkDescriptorSetLayout *outLayout)
VkShaderStageFlags PipelineStageFlagsToVkShaderStageFlags(SkEnumBitMask< PipelineStageFlags > stageFlags)
VkShaderStageFlagBits
VkFlags VkShaderStageFlags
VkDescriptorType
VkFormat

◆ VULKAN_CALL_RESULT

#define VULKAN_CALL_RESULT (   SHARED_CONTEXT,
  RESULT,
  X 
)
Value:
do { \
(RESULT) = VULKAN_CALL((SHARED_CONTEXT)->interface(), X); \
VULKAN_LOG_IF_NOT_SUCCESS(SHARED_CONTEXT, RESULT, #X); \
(SHARED_CONTEXT)->checkVkResult(RESULT); \
} while (false)
@ VK_ERROR_DEVICE_LOST
@ VK_SUCCESS

Definition at line 33 of file VulkanGraphiteUtilsPriv.h.

34 { \
35 (RESULT) = VULKAN_CALL((SHARED_CONTEXT)->interface(), X); \
36 SkASSERT(VK_SUCCESS == RESULT || VK_ERROR_DEVICE_LOST == RESULT); \
37 VULKAN_LOG_IF_NOT_SUCCESS(SHARED_CONTEXT, RESULT, #X); \
38 (SHARED_CONTEXT)->checkVkResult(RESULT); \
39 } while (false)

◆ VULKAN_CALL_RESULT_NOCHECK

#define VULKAN_CALL_RESULT_NOCHECK (   IFACE,
  RESULT,
  X 
)
Value:
do { \
(RESULT) = VULKAN_CALL(IFACE, X); \
} while (false)

Definition at line 46 of file VulkanGraphiteUtilsPriv.h.

47 { \
48 (RESULT) = VULKAN_CALL(IFACE, X); \
49 } while (false)

◆ VULKAN_LOG_IF_NOT_SUCCESS

#define VULKAN_LOG_IF_NOT_SUCCESS (   SHARED_CONTEXT,
  RESULT,
  X,
  ... 
)
Value:
do { \
if (RESULT != VK_SUCCESS && !(SHARED_CONTEXT)->isDeviceLost()) { \
SkDebugf("Failed vulkan call. Error: %d, " X "\n", RESULT, ##__VA_ARGS__); \
} \
} while (false)

Definition at line 26 of file VulkanGraphiteUtilsPriv.h.

27 { \
28 if (RESULT != VK_SUCCESS && !(SHARED_CONTEXT)->isDeviceLost()) { \
29 SkDebugf("Failed vulkan call. Error: %d, " X "\n", RESULT, ##__VA_ARGS__); \
30 } \
31 } while (false)