|
Blender V4.5
|
Namespaces | |
| namespace | shader |
| namespace | debug |
| namespace | GLVertArray |
| namespace | tests |
| namespace | render_graph |
Typedefs | |
| using | IndexBufPtr = std::unique_ptr<IndexBuf, IndexBufDeleter> |
| using | VertBufPtr = std::unique_ptr<gpu::VertBuf, gpu::VertBufDeleter> |
| using | DebugStack = Vector<StringRef> |
| using | GPUPrintFormatMap = Map<uint32_t, shader::PrintfFormat> |
| using | GPUSourceDictionnary = Map<StringRef, struct GPUSource *> |
| using | GPUFunctionDictionnary = Map<StringRef, GPUFunction *> |
| using | MSLFragmentTileInputAttribute = MSLFragmentOutputAttribute |
| using | TimelineValue = uint64_t |
| using | AttributeMask = uint16_t |
Memory Management. | |
| using | MTLTemporaryBuffer = MTLBufferRange |
Functions | |
| int | convert_normalized_f32_to_i10 (float x) |
| template<typename GPUType> | |
| GPUType | convert_normal (const float3 &src) |
| template<> | |
| PackedNormal | convert_normal (const float3 &src) |
| template<> | |
| short4 | convert_normal (const float3 &src) |
| template<typename GPUType> | |
| void | convert_normals (Span< float3 > src, MutableSpan< GPUType > dst) |
| size_t | to_bytesize (GPUIndexBufType type) |
| int | indices_per_primitive (GPUPrimType prim_type) |
| constexpr DataFormat | to_data_format (VertAttrType format) |
| static GPUContext * | wrap (Context *ctx) |
| static Context * | unwrap (GPUContext *ctx) |
| static const Context * | unwrap (const GPUContext *ctx) |
| static GPUFrameBuffer * | wrap (FrameBuffer *vert) |
| static FrameBuffer * | unwrap (GPUFrameBuffer *vert) |
| static const FrameBuffer * | unwrap (const GPUFrameBuffer *vert) |
| static char * | create_key (eGPUSupportLevel support_level, const char *vendor, const char *renderer, const char *version) |
| static char * | create_gpu_name (const char *vendor, const char *renderer, const char *version) |
| static void | sort_input_list (MutableSpan< ShaderInput > dst) |
| static GPUShader * | wrap (Shader *vert) |
| static Shader * | unwrap (GPUShader *vert) |
| static const Shader * | unwrap (const GPUShader *vert) |
| BLI_STATIC_ASSERT (sizeof(GPUState)==sizeof(uint64_t), "GPUState is too big.") | |
| bool | operator== (const GPUState &a, const GPUState &b) |
| bool | operator!= (const GPUState &a, const GPUState &b) |
| GPUState | operator^ (const GPUState &a, const GPUState &b) |
| GPUState | operator~ (const GPUState &a) |
| BLI_STATIC_ASSERT (sizeof(GPUStateMutable)==sizeof(GPUStateMutable::data), "GPUStateMutable is too big.") | |
| bool | operator== (const GPUStateMutable &a, const GPUStateMutable &b) |
| bool | operator!= (const GPUStateMutable &a, const GPUStateMutable &b) |
| GPUStateMutable | operator^ (const GPUStateMutable &a, const GPUStateMutable &b) |
| GPUStateMutable | operator~ (const GPUStateMutable &a) |
| static GPUFence * | wrap (Fence *pixbuf) |
| static Fence * | unwrap (GPUFence *pixbuf) |
| static const Fence * | unwrap (const GPUFence *pixbuf) |
| static GPUStorageBuf * | wrap (StorageBuf *storage_buf) |
| static StorageBuf * | unwrap (GPUStorageBuf *storage_buf) |
| static const StorageBuf * | unwrap (const GPUStorageBuf *storage_buf) |
| static GPUTexture * | wrap (Texture *vert) |
| static Texture * | unwrap (GPUTexture *vert) |
| static const Texture * | unwrap (const GPUTexture *vert) |
| static GPUPixelBuffer * | wrap (PixelBuffer *pixbuf) |
| static PixelBuffer * | unwrap (GPUPixelBuffer *pixbuf) |
| static const PixelBuffer * | unwrap (const GPUPixelBuffer *pixbuf) |
| size_t | to_bytesize (eGPUTextureFormat format) |
| size_t | to_block_size (eGPUTextureFormat data_type) |
| eGPUTextureFormatFlag | to_format_flag (eGPUTextureFormat format) |
| int | to_component_len (eGPUTextureFormat format) |
| size_t | to_bytesize (eGPUDataFormat data_format) |
| size_t | to_bytesize (eGPUTextureFormat tex_format, eGPUDataFormat data_format) |
| constexpr bool | validate_data_format (eGPUTextureFormat tex_format, eGPUDataFormat data_format) |
| eGPUDataFormat | to_data_format (eGPUTextureFormat tex_format) |
| eGPUFrameBufferBits | to_framebuffer_bits (eGPUTextureFormat tex_format) |
| static eGPUTextureFormat | to_texture_format (const GPUVertFormat *format) |
| static GPUUniformBuf * | wrap (UniformBuf *vert) |
| static UniformBuf * | unwrap (GPUUniformBuf *vert) |
| static const UniformBuf * | unwrap (const GPUUniformBuf *vert) |
| static VertAttrType | vertex_format_combine (GPUVertCompType component_type, GPUVertFetchMode fetch_mode, uint32_t component_len) |
| bool | is_fetch_normalized (VertAttrType attr_type) |
| bool | is_fetch_int_to_float (VertAttrType attr_type) |
| bool | is_fetch_float (VertAttrType attr_type) |
| template<typename GPUType> | |
| static void | convert_normals_impl (const Span< float3 > src, MutableSpan< GPUType > dst) |
| template<> | |
| void | convert_normals (const Span< float3 > src, MutableSpan< PackedNormal > dst) |
| template<> | |
| void | convert_normals (const Span< float3 > src, MutableSpan< short4 > dst) |
| int | format_component_len (const VertAttrType format) |
| int | to_bytesize (const VertAttrType format) |
| ENUM_OPERATORS (MTLPipelineStateDirtyFlag, MTL_PIPELINE_STATE_CULLMODE_FLAG) | |
| static MTLPrimitiveTopologyClass | mtl_prim_type_to_topology_class (MTLPrimitiveType prim_type) |
| static MTLPrimitiveType | gpu_prim_type_to_metal (GPUPrimType prim_type) |
| static bool | mtl_needs_topology_emulation (GPUPrimType prim_type) |
| static bool | mtl_vertex_count_fits_primitive_type (uint32_t vertex_count, MTLPrimitiveType prim_type) |
| static MTLVisibilityResultMode | to_mtl_type (GPUQueryType type) |
| MTLVertexFormat | format_resize_comp (MTLVertexFormat mtl_format, uint32_t components) |
| MTLVertexFormat | format_get_component_type (MTLVertexFormat mtl_format) |
| MTLVertexFormat | to_mtl (GPUVertCompType component_type, GPUVertFetchMode fetch_mode, uint32_t component_len) |
| int | mtl_format_component_len (MTLVertexFormat format) |
| bool | mtl_format_is_normalized (MTLVertexFormat format) |
| MTLVertexFormat | mtl_convert_vertex_format_ex (MTLVertexFormat shader_attr_format, GPUVertCompType component_type, uint32_t component_len, GPUVertFetchMode fetch_mode) |
| bool | mtl_convert_vertex_format (MTLVertexFormat shader_attr_format, GPUVertCompType component_type, uint32_t component_len, GPUVertFetchMode fetch_mode, MTLVertexFormat *r_convertedFormat) |
| const char * | to_string (ShaderStage stage) |
| const char * | get_stage_class_name (ShaderStage stage) |
| const char * | get_shader_stage_instance_name (ShaderStage stage) |
| bool | is_builtin_type (std::string type) |
| bool | is_matrix_type (const std::string &type) |
| bool | is_matrix_type (const shader::Type &type) |
| int | get_matrix_location_count (const std::string &type) |
| int | get_matrix_location_count (const shader::Type &type) |
| std::string | get_matrix_subtype (const std::string &type) |
| shader::Type | get_matrix_subtype (const shader::Type &type) |
| std::string | get_attribute_conversion_function (bool *uses_conversion, const shader::Type &type) |
| const char * | to_string_msl (const shader::Interpolation &interp) |
| char * | next_symbol_in_range (char *begin, const char *end, char symbol) |
| char * | next_word_in_range (char *begin, const char *end) |
| ENUM_OPERATORS (ShaderStage, ShaderStage::ANY) | |
| uint | get_shader_stage_index (ShaderStage stage) |
| MTLVertexFormat | mtl_datatype_to_vertex_type (eMTLDataType type) |
| std::string | tex_data_format_to_msl_type_str (eGPUDataFormat type) |
| std::string | tex_data_format_to_msl_texture_template_type (eGPUDataFormat type) |
| MTLTextureType | to_metal_type (eGPUTextureType type) |
| bool | mtl_format_is_writable (MTLPixelFormat format) |
| MTLPixelFormat | mtl_format_get_writeable_view_format (MTLPixelFormat format) |
| MTLTextureUsage | mtl_usage_from_gpu (eGPUTextureUsage usage) |
| eGPUTextureUsage | gpu_usage_from_mtl (MTLTextureUsage mtl_usage) |
| static GLenum | to_gl (GPUIndexBufType type) |
| static GLenum | to_gl (GPUPrimType prim_type) |
| static GLenum | to_gl (GPUQueryType type) |
| static GLbitfield | to_gl (eGPUBarrier barrier_bits) |
| GLenum | to_gl_internal_format (eGPUTextureFormat format) |
| GLenum | to_gl_target (eGPUTextureType type) |
| GLenum | to_gl_proxy (eGPUTextureType type) |
| GLenum | swizzle_to_gl (const char swizzle) |
| GLenum | to_gl (eGPUDataFormat format) |
| GLenum | to_gl_data_format (eGPUTextureFormat format) |
| GLenum | channel_len_to_gl (int channel_len) |
| static GLenum | to_gl (GPUUsageType type) |
| static GLenum | to_gl (GPUVertCompType type) |
| template<typename Layout> | |
| static void | def_attr (const shader::Type type, const int array_size, const uint32_t expected_alignment, const uint32_t expected_reserve, uint32_t *r_offset) |
| TEST (std140, fl) | |
| TEST (std140, _2fl) | |
| TEST (std140, _3fl) | |
| TEST (std140, _4fl) | |
| TEST (std140, fl2) | |
| TEST (std140, fl_fl2) | |
| TEST (std140, fl_vec2) | |
| TEST (std140, gpu_shader_2D_widget_base) | |
| TEST (std430, overlay_grid) | |
| TEST (std430, simple_lighting) | |
| TEST (std430, compositor_cryptomatte_matte_compute) | |
| static const char * | vk_extension_get (int index) |
| bool | GPU_vulkan_is_supported_driver (VkPhysicalDevice vk_physical_device) |
| static Vector< StringRefNull > | missing_capabilities_get (VkPhysicalDevice vk_physical_device) |
| static eGPUOSType | determine_os_type () |
| static void | init_device_list (GHOST_ContextHandle ghost_context) |
| VKBatch * | unwrap (Batch *batch) |
| VkImageAspectFlags | to_vk_image_aspect_flag_bits (const eGPUTextureFormat format) |
| VkImageAspectFlags | to_vk_image_aspect_flag_bits (const eGPUFrameBufferBits buffers) |
| eGPUTextureFormat | to_gpu_format (const VkFormat format) |
| VkFormat | to_vk_format (const eGPUTextureFormat format) |
| static VkFormat | to_vk_format_norm (const GPUVertCompType type, const uint32_t size) |
| static VkFormat | to_vk_format_float (const GPUVertCompType type, const uint32_t size) |
| static VkFormat | to_vk_format_int (const GPUVertCompType type, const uint32_t size) |
| VkFormat | to_vk_format (const GPUVertCompType type, const uint32_t size, GPUVertFetchMode fetch_mode) |
| VkFormat | to_vk_format (const shader::Type type) |
| VkQueryType | to_vk_query_type (const GPUQueryType query_type) |
| VkImageType | to_vk_image_type (const eGPUTextureType type) |
| VkImageViewType | to_vk_image_view_type (const eGPUTextureType type, const eImageViewUsage view_type, VKImageViewArrayed arrayed) |
| VkComponentSwizzle | to_vk_component_swizzle (const char swizzle) |
| template<typename T> | |
| void | copy_color (T dst[4], const T *src) |
| VkClearColorValue | to_vk_clear_color_value (const eGPUDataFormat format, const void *data) |
| VkIndexType | to_vk_index_type (const GPUIndexBufType index_type) |
| VkPrimitiveTopology | to_vk_primitive_topology (const GPUPrimType prim_type) |
| VkCullModeFlags | to_vk_cull_mode_flags (const eGPUFaceCullTest cull_test) |
| VkSamplerAddressMode | to_vk_sampler_address_mode (const GPUSamplerExtendMode extend_mode) |
| static VkDescriptorType | to_vk_descriptor_type_image (const shader::ImageType &image_type) |
| static VkDescriptorType | to_vk_descriptor_type_sampler (const shader::ImageType &image_type) |
| VkDescriptorType | to_vk_descriptor_type (const shader::ShaderCreateInfo::Resource &resource) |
| template<typename T> | |
| VkObjectType | to_vk_object_type (T) |
| ENUM_OPERATORS (RenderGraphFlushFlags, RenderGraphFlushFlags::WAIT_FOR_COMPLETION) | |
| BLI_INLINE bool | operator== (const VKContext &a, const VKContext &b) |
| static void | align_size (VkDeviceSize &r_size, VkDeviceSize alignment) |
| constexpr GPULoadStore | default_load_store () |
| static VKFrameBuffer * | unwrap (FrameBuffer *framebuffer) |
| static VkFormat | to_non_srgb_format (const VkFormat format) |
| static VkDeviceSize | new_buffer_size (VkDeviceSize sub_buffer_size) |
| static VKIndexBuffer * | unwrap (IndexBuf *index_buffer) |
| template<typename LayoutT> | |
| static uint32_t | element_stride (const shader::Type type) |
| template<typename LayoutT> | |
| static uint32_t | array_stride (const shader::Type type) |
| template<typename LayoutT> | |
| static void | align (const shader::Type &type, const int32_t array_size, uint32_t *r_offset) |
| template<typename LayoutT> | |
| static void | reserve (const shader::Type type, int32_t array_size, uint32_t *r_offset) |
| template<typename LayoutT> | |
| static void | align_end_of_struct (uint32_t *r_offset) |
| static VKPixelBuffer * | unwrap (PixelBuffer *pixel_buffer) |
| template<typename LayoutT> | |
| static VKPushConstants::Layout::PushConstant | init_constant (const shader::ShaderCreateInfo::PushConst &push_constant, const ShaderInput &shader_input, uint32_t *r_offset) |
| template<typename LayoutT> | |
| uint32_t | struct_size (Span< shader::ShaderCreateInfo::PushConst > push_constants) |
| template<typename LayoutT> | |
| void | init_struct (const shader::ShaderCreateInfo &info, const VKShaderInterface &interface, Vector< VKPushConstants::Layout::PushConstant > &r_struct, uint32_t *r_offset) |
| static std::string | main_function_wrapper (std::string &pre_main, std::string &post_main) |
| static std::string | combine_sources (Span< StringRefNull > sources) |
| static Type | to_component_type (const Type &type) |
| static StageInterfaceInfo * | find_interface_by_name (const Span< StageInterfaceInfo * > ifaces, const StringRefNull name) |
| static void | declare_emit_vertex (std::stringstream &ss) |
| static VKShader & | unwrap (Shader &shader) |
| static VKShader * | unwrap (Shader *shader) |
| static std::optional< std::string > | cache_dir_get () |
| static VKBindType | to_bind_type (shader::ShaderCreateInfo::Resource::BindType bind_type) |
| static int32_t | shader_input_index (const ShaderInput *shader_inputs, const ShaderInput *shader_input) |
| BLI_INLINE VKStorageBuffer * | unwrap (StorageBuf *storage_buffer) |
| static VkImageAspectFlags | to_vk_image_aspect_single_bit (const VkImageAspectFlags format, bool stencil) |
| static VkImageUsageFlags | to_vk_image_usage (const eGPUTextureUsage usage, const eGPUTextureFormatFlag format_flag) |
| static VkImageCreateFlags | to_vk_image_create (const eGPUTextureType texture_type, const eGPUTextureFormatFlag format_flag, const eGPUTextureUsage usage) |
| static float | memory_priority (const eGPUTextureUsage texture_usage) |
| BLI_INLINE VKTexture * | unwrap (Texture *tex) |
| BLI_INLINE Texture * | wrap (VKTexture *texture) |
| static std::string | to_string_handle (uint64_t vk_handle) |
| std::string | to_string (VkBuffer vk_handle) |
| std::string | to_string (VkImage vk_handle) |
| std::string | to_string (VkImageView vk_handle) |
| std::string | to_string (VkRenderPass vk_handle) |
| std::string | to_string (VkFramebuffer vk_handle) |
| std::string | to_string (VkPipelineLayout vk_handle) |
| std::string | to_string (VkPipeline vk_handle) |
| std::string | to_string (VkDescriptorSet vk_handle) |
| const char * | to_string (const VkAttachmentLoadOp vk_attachment_load_op) |
| const char * | to_string (const VkAttachmentStoreOp vk_attachment_store_op) |
| const char * | to_string (const VkFilter vk_filter) |
| const char * | to_string (const VkImageLayout vk_image_layout) |
| const char * | to_string (const VkIndexType vk_index_type) |
| const char * | to_string (const VkObjectType vk_object_type) |
| const char * | to_string (const VkPipelineBindPoint vk_pipeline_bind_point) |
| const char * | to_string (const VkResolveModeFlagBits vk_resolve_mode_flag_bits) |
| const char * | to_string (const VkSubpassContents vk_subpass_contents) |
| std::string | to_string_vk_access_flags (const VkAccessFlags vk_access_flags) |
| std::string | to_string_vk_dependency_flags (const VkDependencyFlags vk_dependency_flags) |
| std::string | to_string_vk_image_aspect_flags (const VkImageAspectFlags vk_image_aspect_flags) |
| std::string | to_string_vk_pipeline_stage_flags (const VkPipelineStageFlags vk_pipeline_stage_flags) |
| std::string | to_string_vk_rendering_flags (const VkRenderingFlags vk_rendering_flags) |
| std::string | to_string_vk_shader_stage_flags (const VkShaderStageFlags vk_shader_stage_flags) |
| std::string | to_string (const VkBufferCopy &vk_buffer_copy, int indentation_level) |
| std::string | to_string (const VkBufferImageCopy &vk_buffer_image_copy, int indentation_level) |
| std::string | to_string (const VkBufferMemoryBarrier &vk_buffer_memory_barrier, int indentation_level) |
| std::string | to_string (const VkClearAttachment &vk_clear_attachment, int indentation_level) |
| std::string | to_string (const VkClearDepthStencilValue &vk_clear_depth_stencil_value, int indentation_level) |
| std::string | to_string (const VkClearRect &vk_clear_rect, int indentation_level) |
| std::string | to_string (const VkExtent2D &vk_extent2_d, int indentation_level) |
| std::string | to_string (const VkExtent3D &vk_extent3_d, int indentation_level) |
| std::string | to_string (const VkImageBlit &vk_image_blit, int indentation_level) |
| std::string | to_string (const VkImageCopy &vk_image_copy, int indentation_level) |
| std::string | to_string (const VkImageMemoryBarrier &vk_image_memory_barrier, int indentation_level) |
| std::string | to_string (const VkImageSubresourceLayers &vk_image_subresource_layers, int indentation_level) |
| std::string | to_string (const VkImageSubresourceRange &vk_image_subresource_range, int indentation_level) |
| std::string | to_string (const VkMemoryBarrier &vk_memory_barrier, int indentation_level) |
| std::string | to_string (const VkOffset2D &vk_offset2_d, int indentation_level) |
| std::string | to_string (const VkOffset3D &vk_offset3_d, int indentation_level) |
| std::string | to_string (const VkRect2D &vk_rect2_d, int indentation_level) |
| std::string | to_string (const VkRenderPassBeginInfo &vk_render_pass_begin_info, int indentation_level) |
| std::string | to_string (const VkRenderingAttachmentInfo &vk_rendering_attachment_info, int indentation_level) |
| std::string | to_string (const VkRenderingInfo &vk_rendering_info, int indentation_level) |
| BLI_INLINE UniformBuf * | wrap (VKUniformBuffer *uniform_buffer) |
| BLI_INLINE VKVertexBuffer * | unwrap (VertBuf *vertex_buffer) |
Utilities | |
Allow querying information about the format enum values. | |
| int | to_bytesize (const DataFormat format) |
| int | format_component_len (const DataFormat format) |
Shader Debug Printf | |
| void | printf_begin (Context *ctx) |
| void | printf_end (Context *ctx) |
Capabilities | |
| static const char * | mtl_extensions_get_null (int) |
| bool | supports_barycentric_whitelist (id< MTLDevice > device) |
| bool | is_apple_sillicon (id< MTLDevice > device) |
| static int | get_num_performance_cpu_cores (id< MTLDevice > device) |
| static int | get_num_efficiency_cpu_cores (id< MTLDevice > device) |
| static bool | detect_mip_render_workaround () |
| static const char * | gl_extension_get (int i) |
| static void | detect_workarounds () |
Swap-chain management and Metal presentation. | |
| void | present (MTLRenderPassDescriptor *blit_descriptor, id< MTLRenderPipelineState > blit_pso, id< MTLTexture > swapchain_texture, id< CAMetalDrawable > drawable) |
Texture State Management | |
| static MTLSamplerAddressMode | to_mtl_type (GPUSamplerExtendMode wrap_mode) |
| MTLLoadAction | mtl_load_action_from_gpu (eGPULoadOp action) |
| MTLStoreAction | mtl_store_action_from_gpu (eGPUStoreOp action) |
Index buffer optimization and topology emulation | |
Index buffer optimization and emulation. Optimize index buffers by eliminating restart-indices. Emulate unsupported index types e.g. Triangle Fan and Line Loop. | |
| template<typename T> | |
| static uint32_t | populate_optimized_tri_strip_buf (Span< T > original_data, MutableSpan< T > output_data, uint32_t input_index_len) |
| template<typename T> | |
| static uint32_t | populate_emulated_tri_fan_buf (Span< T > original_data, MutableSpan< T > output_data, uint32_t input_index_len) |
Shader specialization common utilities. | |
| static void | populate_specialization_constant_values (MTLFunctionConstantValues *values, const shader::SpecializationConstants &shader_constants, const SpecializationStateDescriptor &specialization_descriptor) |
Create Info | |
| const char * | to_string (const shader::PrimitiveOut &layout) |
| const char * | to_string (const shader::PrimitiveIn &layout) |
| const char * | to_string (const shader::Interpolation &interp) |
| const char * | to_string (const shader::Type &type) |
| static const char * | to_string (const eGPUTextureFormat &type) |
| static const char * | to_string (const DepthWrite &value) |
| static void | print_image_type (std::ostream &os, const ImageType &type, const ShaderCreateInfo::Resource::BindType bind_type) |
| static std::ostream & | print_qualifier (std::ostream &os, const Qualifier &qualifiers) |
| static void | print_resource (std::ostream &os, const VKDescriptorSet::Location location, const ShaderCreateInfo::Resource &res) |
| static void | print_resource (std::ostream &os, const VKShaderInterface &shader_interface, const ShaderCreateInfo::Resource &res) |
| int | get_location_count (const Type &type) |
| static void | print_interface_as_attributes (std::ostream &os, const std::string &prefix, const StageInterfaceInfo &iface, int &location) |
| static void | print_interface_as_struct (std::ostream &os, const std::string &prefix, const StageInterfaceInfo &iface, int &location, const StringRefNull &suffix) |
| static void | print_interface (std::ostream &os, const std::string &prefix, const StageInterfaceInfo &iface, int &location, const StringRefNull &suffix="") |
Shader Translation utility functions. | |
| static eMTLDataType | to_mtl_type (Type type) |
| static std::regex | remove_non_numeric_characters ("[^0-9]") |
| static void | extract_and_replace_clipping_distances (std::string &vertex_source, MSLGeneratorInterface &msl_iface) |
MTLShader builtin shader generation utilities. | |
| static void | print_resource (std::ostream &os, const ShaderCreateInfo::Resource &res) |
Shader Translation. | |
| static void | generate_specialization_constant_declarations (const shader::ShaderCreateInfo *info, std::stringstream &ss) |
| static void | generate_compilation_constant_declarations (const shader::ShaderCreateInfo *info, std::stringstream &ss) |
| constexpr size_t | const_strlen (const char *str) |
| static char | parameter_delimiter (bool &is_first_parameter) |
| static uint32_t | name_buffer_copystr (char **name_buffer_ptr, const char *str_to_copy, uint32_t &name_buffer_size, uint32_t &name_buffer_offset) |
State setting functions | |
| static MTLCompareFunction | gpu_depth_function_to_metal (eGPUDepthTest depth_func) |
| static MTLCompareFunction | gpu_stencil_func_to_metal (eGPUStencilTest stencil_func) |
| static void | mtl_stencil_set_op_separate (MTLContext *context, eGPUFaceCullTest face, MTLStencilOperation stencil_fail, MTLStencilOperation depth_test_fail, MTLStencilOperation depthstencil_pass) |
| static void | mtl_stencil_set_op (MTLContext *context, MTLStencilOperation stencil_fail, MTLStencilOperation depth_test_fail, MTLStencilOperation depthstencil_pass) |
Texture Utility Functions | |
| MTLPixelFormat | gpu_texture_format_to_metal (eGPUTextureFormat tex_format) |
| size_t | get_mtl_format_bytesize (MTLPixelFormat tex_format) |
| int | get_mtl_format_num_components (MTLPixelFormat tex_format) |
| bool | mtl_format_supports_blending (MTLPixelFormat format) |
Operations | |
| static MTLTextureSwizzle | swizzle_to_mtl (const char swizzle) |
Platform | |
| static bool | match_renderer (StringRef renderer, const Vector< std::string > &items) |
| static bool | parse_version (const std::string &version, const std::string &format, Vector< int > &r_version) |
| static bool | is_bad_AMD_driver (const char *version_cstr) |
Enums Conversion | |
| static GLenum | to_gl (const GPUAttachmentType type) |
| static GLbitfield | to_gl (const eGPUFrameBufferBits bits) |
Binding assignment | |
To mimic vulkan, we assign binding at shader creation to avoid shader recompilation. In the future, we should set it in the shader using layout(binding = i) and query its value. | |
| static int | block_binding (int32_t program, uint32_t block_index) |
| static int | sampler_binding (int32_t program, uint32_t uniform_index, int32_t uniform_location, int *sampler_len) |
| static int | image_binding (int32_t program, uint32_t uniform_index, int32_t uniform_location, int *image_len) |
| static int | ssbo_binding (int32_t program, uint32_t ssbo_index) |
Creation / Destruction | |
| static Type | gpu_type_from_gl_type (int gl_type) |
Sampler objects | |
| static GLenum | to_gl (GPUSamplerExtendMode extend_mode) |
Vertex Array Bindings | |
| static uint16_t | vbo_bind (const ShaderInterface *interface, const GPUVertFormat *format, uint v_first, uint v_len, const bool use_instancing) |
API | |
| void | convert_host_to_device (void *dst_buffer, const void *src_buffer, size_t buffer_size, eGPUDataFormat host_format, eGPUTextureFormat host_texture_format, eGPUTextureFormat device_format) |
| void | convert_device_to_host (void *dst_buffer, const void *src_buffer, size_t buffer_size, eGPUDataFormat host_format, eGPUTextureFormat host_texture_format, eGPUTextureFormat device_format) |
Load/Store operations | |
| static VkAttachmentLoadOp | to_vk_attachment_load_op (eGPULoadOp load_op) |
| static VkAttachmentStoreOp | to_vk_attachment_store_op (eGPUStoreOp store_op) |
| static void | set_load_store (VkRenderingAttachmentInfo &r_rendering_attachment, const GPULoadStore &ls) |
Blit operations | |
| static void | blit_aspect (VKContext &context, VKTexture &dst_texture, VKTexture &src_texture, int dst_offset_x, int dst_offset_y, VkImageAspectFlags image_aspect) |
SPIR-V disk cache | |
| static bool | read_spirv_from_disk (VKShaderModule &shader_module) |
| static void | write_spirv_to_disk (VKShaderModule &shader_module) |
Compilation | |
| static StringRef | to_stage_name (shaderc_shader_kind stage) |
| static bool | compile_ex (shaderc::Compiler &compiler, VKShader &shader, shaderc_shader_kind stage, VKShaderModule &shader_module) |
Update bindings | |
| static uint32_t | to_binding_location_len (const GPUVertAttr &attribute) |
| static uint32_t | to_binding_location_len (const shader::Type type) |
Variables | |
| constexpr uint32_t | RESTART_INDEX = 0xFFFFFFFF |
| GPUCapabilities | GCaps |
| GPUPlatformGlobal | GPG |
| NSAutoreleasePool * | g_autoreleasepool = nil |
| int | g_autoreleasepool_depth = 0 |
| static const size_t | VISIBILITY_COUNT_PER_BUFFER = 512 |
| static const size_t | VISIBILITY_RESULT_SIZE_IN_BYTES = 8 |
| std::mutex | msl_patch_default_lock |
| static const int | MTL_MAX_MIPMAP_COUNT = 15 |
| static const int | MTL_MAX_FBO_ATTACHED = 16 |
| const MTLSamplerState | DEFAULT_SAMPLER_STATE = {GPUSamplerState::default_sampler() } |
| static CLG_LogRef | LOG = {"gpu.vulkan"} |
| constexpr size_t | DEFAULT_INTERNAL_BUFFER_SIZE = 4 * 1024 * 1024 |
| static CLG_LogRef | LOG = {"gpu.vulkan"} |
| static constexpr int | BIND_SPACE_IMAGE_OFFSET = 512 |
Platform/driver/device information | |
| constexpr int32_t | PCI_ID_NVIDIA = 0x10de |
| constexpr int32_t | PCI_ID_INTEL = 0x8086 |
| constexpr int32_t | PCI_ID_AMD = 0x1002 |
| constexpr int32_t | PCI_ID_ATI = 0x1022 |
| constexpr int32_t | PCI_ID_APPLE = 0x106b |
Texture Formats | |
| enum class | TextureFormat : uint8_t { Invalid = 0 } |
| enum class | TextureTargetFormat : uint8_t { Invalid = 0 } |
| enum class | TextureWriteFormat : uint8_t { Invalid = 0 } |
| constexpr DataFormat | to_data_format (TextureFormat format) |
| constexpr TextureFormat | to_texture_format (TextureTargetFormat format) |
| constexpr TextureFormat | to_texture_format (TextureWriteFormat format) |
Data Conversion | |
| using | UI8 = ComponentValue<uint8_t> |
| using | UI16 = ComponentValue<uint16_t> |
| using | UI32 = ComponentValue<uint32_t> |
| using | I8 = ComponentValue<int8_t> |
| using | I16 = ComponentValue<int16_t> |
| using | I32 = ComponentValue<int32_t> |
| using | F16 = ComponentValue<uint16_t> |
| using | F32 = ComponentValue<float> |
| using | SRGBA8 = PixelValue<ColorSceneLinearByteEncoded4b<eAlpha::Premultiplied>> |
| using | FLOAT3 = PixelValue<float3> |
| using | FLOAT4 = PixelValue<ColorSceneLinear4f<eAlpha::Premultiplied>> |
| constexpr uint32_t | MASK_10_BITS = 0b1111111111 |
| constexpr uint32_t | MASK_11_BITS = 0b11111111111 |
| constexpr uint8_t | SHIFT_B = 22 |
| constexpr uint8_t | SHIFT_G = 11 |
| constexpr uint8_t | SHIFT_R = 0 |
| static uint32_t | float_to_uint32_t (float value) |
| static float | uint32_t_to_float (uint32_t value) |
| template<typename StorageType> | |
| void | convert (SignedNormalized< StorageType > &dst, const F32 &src) |
| template<typename StorageType> | |
| void | convert (F32 &dst, const SignedNormalized< StorageType > &src) |
| template<typename StorageType> | |
| void | convert (UnsignedNormalized< StorageType > &dst, const F32 &src) |
| template<typename StorageType> | |
| void | convert (F32 &dst, const UnsignedNormalized< StorageType > &src) |
| template<typename StorageType> | |
| void | convert (UnsignedNormalized< StorageType > &, const UI32 &) |
| template<typename StorageType> | |
| void | convert (UI32 &dst, const UnsignedNormalized< StorageType > &src) |
| template<typename DestinationType, typename SourceType> | |
| void | convert (DestinationType &dst, const SourceType &src) |
| static void | convert (SRGBA8 &dst, const FLOAT4 &src) |
| static void | convert (FLOAT4 &dst, const SRGBA8 &src) |
| static void | convert (FLOAT3 &dst, const HALF4 &src) |
| static void | convert (HALF4 &dst, const FLOAT3 &src) |
| static void | convert (FLOAT3 &dst, const FLOAT4 &src) |
| static void | convert (FLOAT4 &dst, const FLOAT3 &src) |
| static void | convert (F16 &dst, const UI8 &src) |
| static void | convert (UI8 &dst, const F16 &src) |
| static void | convert (FLOAT3 &dst, const B10F_G11G_R11F &src) |
| static void | convert (B10F_G11G_R11F &dst, const FLOAT3 &src) |
| static void | convert (UI32 &dst, const Depth24Stencil8 &src) |
| static void | convert (Depth24Stencil8 &dst, const UI32 &src) |
| static void | convert (UI32 &dst, const Depth32fStencil8 &src) |
| static void | convert (Depth32fStencil8 &dst, const UI32 &src) |
| template<typename DestinationType, typename SourceType> | |
| void | convert (MutableSpan< DestinationType > dst, Span< SourceType > src) |
| template<typename DestinationType, typename SourceType> | |
| void | convert_per_component (void *dst_memory, const void *src_memory, size_t buffer_size, eGPUTextureFormat device_format) |
| template<typename DestinationType, typename SourceType> | |
| void | convert_per_pixel (void *dst_memory, const void *src_memory, size_t buffer_size) |
| static void | convert_buffer (void *dst_memory, const void *src_memory, size_t buffer_size, eGPUTextureFormat device_format, ConversionType type) |
Floating point conversions | |
| using | FormatF32 = FloatingPointFormat<true, 23, 8> |
| using | FormatF11 = FloatingPointFormat<false, 6, 5> |
| using | FormatF10 = FloatingPointFormat<false, 5, 5> |
| template<typename DestinationFormat, typename SourceFormat, bool ClampNegativeToZero = true> | |
| uint32_t | convert_float_formats (uint32_t value) |
– Metal Shader Generator for GLSL -> MSL conversion –
The Metal shader generator class is used as a conversion utility for generating a compatible MSL shader from a source GLSL shader. There are several steps involved in creating a shader, and structural changes which enable the source to function in the same way.
1) Extraction and conversion of shaders input's and output's to their Metal-compatible version. This is a subtle data transformation from GPUShaderCreateInfo, allowing for Metal-specific parameters.
2) Determine usage of shader features such as GL global variable usage, depth write output, clip distances, multilayered rendering, barycentric coordinates etc;
3) Generate MSL shader.
4) Populate MTLShaderInterface, describing input/output structure, bind-points, buffer size and alignment, shader feature usage etc; Everything required by the Metal back-end to successfully enable use of shaders and GPU back-end features.
For each shading stage, we generate an MSL shader following these steps:
1) Output custom shader defines describing modes e.g. whether we are using sampler bindings or argument buffers; at the top of the shader.
2) Inject common Metal headers.
3) Create a class Scope which wraps the GLSL shader. This is used to create a global per-thread scope around the shader source, to allow access to common shader members (GLSL globals, shader inputs/outputs etc)
4) Generate shader interface structs and populate local members where required for:
5) Inject GLSL source.
6) Generate MSL shader entry point function. Every Metal shader must have a vertex/fragment/kernel entry-point, which contains the function binding table. This is where bindings are specified and passed into the shader.
For converted shaders, the MSL entry-point will also instantiate a shader class per thread, and pass over bound resource references into the class.
Finally, the shaders "main()" method will be called, and outputs are copied.
NOTE: For position outputs, the default output position will be converted to the Metal coordinate space, which involves flipping the Y coordinate and re-mapping the depth range between 0 and 1, as with Vulkan.
The final shader structure looks as follows:
– Metal buffer bindings structure –
Metal shader contains several different binding types. All buffers are bound using the buffer(N) binding attribute tag. However, different ranges serve different purposes. The structure of the bindings always happen as follows:
Vertex Buffers (N) <– 0 Index buffer Default Push constant block for uniforms <– MTL_uniform_buffer_base_index Uniform buffers <– MTL_uniform_buffer_base_index+1 Storage buffers <– MTL_storage_buffer_base_index Samplers/argument buffer table <– last buffer + 1
Up to a maximum of 31 bindings.
This file contains API that the GHOST_ContextVK can invoke directly.
| using blender::gpu::AttributeMask = uint16_t |
Definition at line 25 of file vk_vertex_attribute_object.hh.
| using blender::gpu::DebugStack = Vector<StringRef> |
Definition at line 18 of file gpu_debug_private.hh.
| using blender::gpu::F16 = ComponentValue<uint16_t> |
Definition at line 724 of file vk_data_conversion.cc.
| using blender::gpu::F32 = ComponentValue<float> |
Definition at line 725 of file vk_data_conversion.cc.
| using blender::gpu::FLOAT3 = PixelValue<float3> |
Definition at line 727 of file vk_data_conversion.cc.
Definition at line 728 of file vk_data_conversion.cc.
| using blender::gpu::FormatF10 = FloatingPointFormat<false, 5, 5> |
Definition at line 140 of file vk_data_conversion.hh.
| using blender::gpu::FormatF11 = FloatingPointFormat<false, 6, 5> |
Definition at line 139 of file vk_data_conversion.hh.
| using blender::gpu::FormatF32 = FloatingPointFormat<true, 23, 8> |
Definition at line 138 of file vk_data_conversion.hh.
| using blender::gpu::GPUFunctionDictionnary = Map<StringRef, GPUFunction *> |
Definition at line 51 of file gpu_shader_dependency.cc.
| using blender::gpu::GPUPrintFormatMap = Map<uint32_t, shader::PrintfFormat> |
Definition at line 49 of file gpu_shader_dependency.cc.
| using blender::gpu::GPUSourceDictionnary = Map<StringRef, struct GPUSource *> |
Definition at line 50 of file gpu_shader_dependency.cc.
| using blender::gpu::I16 = ComponentValue<int16_t> |
Definition at line 722 of file vk_data_conversion.cc.
| using blender::gpu::I32 = ComponentValue<int32_t> |
Definition at line 723 of file vk_data_conversion.cc.
| using blender::gpu::I8 = ComponentValue<int8_t> |
Definition at line 721 of file vk_data_conversion.cc.
| using blender::gpu::IndexBufPtr = std::unique_ptr<IndexBuf, IndexBufDeleter> |
Definition at line 288 of file GPU_index_buffer.hh.
Definition at line 324 of file mtl_shader_generator.hh.
Definition at line 204 of file mtl_memory.hh.
Definition at line 726 of file vk_data_conversion.cc.
| using blender::gpu::TimelineValue = uint64_t |
Definition at line 36 of file vk_common.hh.
| using blender::gpu::UI16 = ComponentValue<uint16_t> |
Definition at line 719 of file vk_data_conversion.cc.
| using blender::gpu::UI32 = ComponentValue<uint32_t> |
Definition at line 720 of file vk_data_conversion.cc.
| using blender::gpu::UI8 = ComponentValue<uint8_t> |
Definition at line 718 of file vk_data_conversion.cc.
| using blender::gpu::VertBufPtr = std::unique_ptr<gpu::VertBuf, gpu::VertBufDeleter> |
Definition at line 306 of file GPU_vertex_buffer.hh.
| Enumerator | |
|---|---|
| APPLE_GPU_UNKNOWN | |
| APPLE_GPU_M1 | |
| APPLE_GPU_M2 | |
| APPLE_GPU_M3 | |
Definition at line 31 of file mtl_capabilities.hh.
|
strong |
| Enumerator | |
|---|---|
| PASS_THROUGH | No conversion needed, result can be directly read back to host memory. |
| PASS_THROUGH_D32F_S8 | Pass through (ignores the stencil component). |
| FLOAT_TO_UNORM8 | |
| UNORM8_TO_FLOAT | |
| FLOAT_TO_SNORM8 | |
| SNORM8_TO_FLOAT | |
| FLOAT_TO_UNORM16 | |
| UNORM16_TO_FLOAT | |
| FLOAT_TO_SNORM16 | |
| SNORM16_TO_FLOAT | |
| FLOAT_TO_UNORM32 | |
| UNORM32_TO_FLOAT | |
| UI32_TO_UI16 | |
| UI16_TO_UI32 | |
| UI32_TO_UI8 | |
| UI8_TO_UI32 | |
| I32_TO_I16 | |
| I16_TO_I32 | |
| I32_TO_I8 | |
| I8_TO_I32 | |
| HALF_TO_UI8 | Convert device 16F to UINT |
| UI8_TO_HALF | |
| HALF_TO_FLOAT | Convert device 16F to floats. |
| FLOAT_TO_HALF | |
| FLOAT_TO_SRGBA8 | |
| SRGBA8_TO_FLOAT | |
| FLOAT_TO_DEPTH_COMPONENT24 | |
| DEPTH_COMPONENT24_TO_FLOAT | |
| FLOAT_TO_B10F_G11F_R11F | |
| B10F_G11F_R11F_TO_FLOAT | |
| FLOAT3_TO_HALF4 | |
| HALF4_TO_FLOAT3 | |
| FLOAT3_TO_FLOAT4 | |
| FLOAT4_TO_FLOAT3 | |
| UINT_TO_DEPTH_COMPONENT24 | |
| DEPTH_COMPONENT24_TO_UINT | |
| UINT_TO_DEPTH24_STENCIL8 | |
| DEPTH24_STENCIL8_TO_UINT | |
| UINT_TO_DEPTH32F_STENCIL8 | |
| DEPTH32F_STENCIL8_TO_UINT | |
| UNSUPPORTED | The requested conversion isn't supported. |
Definition at line 20 of file vk_data_conversion.cc.
|
strong |
Collection of all data formats. Vertex formats and Texture formats are both subset of this.
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 135 of file GPU_format.hh.
| Enumerator | |
|---|---|
| GPU_SAMPLER_TYPE_FLOAT | |
| GPU_SAMPLER_TYPE_INT | |
| GPU_SAMPLER_TYPE_UINT | |
| GPU_SAMPLER_TYPE_DEPTH | |
| GPU_SAMPLER_TYPE_MAX | |
Definition at line 59 of file gpu_texture_private.hh.
| Enumerator | |
|---|---|
| GPU_FORMAT_DEPTH | |
| GPU_FORMAT_STENCIL | |
| GPU_FORMAT_INTEGER | |
| GPU_FORMAT_NORMALIZED_INTEGER | |
| GPU_FORMAT_FLOAT | |
| GPU_FORMAT_COMPRESSED | |
| GPU_FORMAT_SRGB | |
| GPU_FORMAT_SIGNED | |
| GPU_FORMAT_DEPTH_STENCIL | |
Definition at line 19 of file gpu_texture_private.hh.
| Enumerator | |
|---|---|
| GPU_TEXTURE_1D | |
| GPU_TEXTURE_2D | |
| GPU_TEXTURE_3D | |
| GPU_TEXTURE_CUBE | |
| GPU_TEXTURE_ARRAY | |
| GPU_TEXTURE_BUFFER | |
| GPU_TEXTURE_1D_ARRAY | |
| GPU_TEXTURE_2D_ARRAY | |
| GPU_TEXTURE_CUBE_ARRAY | |
Definition at line 42 of file gpu_texture_private.hh.
|
strong |
Based on the usage of an Image View a different image view type should be created.
When using a GPU_TEXTURE_CUBE as an frame buffer attachment it will be used as a GPU_TEXTURE_2D_ARRAY. eg only a single side of the cube map will be attached. But when bound as a shader resource the cube-map will be used.
| Enumerator | |
|---|---|
| ShaderBinding | Image View will be used as a bindable shader resource. |
| Attachment | Image View will be used as an frame-buffer attachment. |
Definition at line 45 of file vk_common.hh.
| Enumerator | |
|---|---|
| GPU_INDEX_U16 | |
| GPU_INDEX_U32 | |
Definition at line 24 of file GPU_index_buffer.hh.
| Enumerator | |
|---|---|
| GPU_QUERY_OCCLUSION | |
Definition at line 17 of file gpu_query.hh.
| Enumerator | |
|---|---|
| TEXTURE_ACCESS_NONE | |
| TEXTURE_ACCESS_SAMPLE | |
| TEXTURE_ACCESS_READ | |
| TEXTURE_ACCESS_WRITE | |
| TEXTURE_ACCESS_READWRITE | |
Definition at line 179 of file mtl_shader_generator.hh.
Definition at line 420 of file mtl_context.hh.
| Enumerator | |
|---|---|
| NONE | |
| RENEW_RENDER_GRAPH | |
| SUBMIT | |
| WAIT_FOR_COMPLETION | |
Definition at line 32 of file vk_context.hh.
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| Warning | |
| Error | |
| Note | |
Definition at line 309 of file gpu_shader_private.hh.
|
strong |
| Enumerator | |
|---|---|
| VERTEX | |
| FRAGMENT | |
| COMPUTE | |
| ANY | |
Definition at line 70 of file mtl_shader_interface.hh.
|
strong |
Formats compatible with read-only texture.
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 35 of file GPU_texture.hh.
|
strong |
Formats compatible with frame-buffer attachments.
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 136 of file GPU_texture.hh.
|
strong |
Formats compatible with shader load/store.
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 209 of file GPU_texture.hh.
|
strong |
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 22 of file GPU_vertex_format.hh.
Bind types to bind resources to a shader.
Keep in sync with #gpu::shader::ShaderCreateInfo::Resource::BindType. We add the term INPUT_ATTACHMENT as it is stored as a sub-pass input in the shader create info.
TODO: Investigate if TEXEL_BUFFER can be added as well.
| Enumerator | |
|---|---|
| UNIFORM_BUFFER | |
| STORAGE_BUFFER | |
| SAMPLER | |
| IMAGE | |
| INPUT_ATTACHMENT | |
Definition at line 32 of file vk_shader_interface.hh.
|
strong |
| Enumerator | |
|---|---|
| DONT_CARE | |
| NOT_ARRAYED | |
| ARRAYED | |
Definition at line 52 of file vk_common.hh.
|
strong |
Additional modifiers when requesting image views.
| Enumerator | |
|---|---|
| DEFAULT | |
| NO_SWIZZLING | |
Definition at line 25 of file vk_texture.hh.
|
static |
Move the r_offset to the next alignment where the given type+array_size can be reserved.
'type': The type that needs to be aligned. 'array_size': The array_size that needs to be aligned. (0=no array). 'r_offset': After the call it will point to the byte where the reservation can happen.
Definition at line 77 of file vk_memory_layout.hh.
Referenced by align_end_of_struct(), def_attr(), init_constant(), and struct_size().
|
static |
Update 'r_offset' to be aligned to the end of the struct.
Call this function when all attributes have been added to make sure that the struct size is correct.
Definition at line 115 of file vk_memory_layout.hh.
References align(), and blender::gpu::shader::float4_t.
Referenced by init_struct(), struct_size(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
|
static |
Definition at line 104 of file vk_descriptor_set_layouts.cc.
|
static |
Definition at line 62 of file vk_memory_layout.hh.
Referenced by reserve().
| blender::gpu::BLI_STATIC_ASSERT | ( | sizeof(GPUStateMutable) | = =sizeof(GPUStateMutable::data), |
| "GPUStateMutable is too big." | ) |
References blender::gpu::GPUStateMutable::data.
|
static |
Definition at line 437 of file vk_framebuffer.cc.
References clamp_i(), blender::gpu::VKTexture::copy_to(), blender::gpu::VKTexture::device_format_get(), blender::gpu::render_graph::VKBlitImageData::dst_image, blender::gpu::render_graph::VKBlitImageData::filter, blender::gpu::Texture::height_get(), blender::gpu::render_graph::VKBlitImageData::region, blender::gpu::render_graph::VKBlitImageData::src_image, blender::gpu::VKTexture::vk_image_handle(), and blender::gpu::Texture::width_get().
Referenced by blender::gpu::VKFrameBuffer::blit_to().
|
inlinestatic |
Definition at line 30 of file gl_shader_interface.cc.
Referenced by blender::gpu::GLShaderInterface::GLShaderInterface().
|
static |
Definition at line 24 of file vk_shader_compiler.cc.
References BKE_appdir_folder_caches(), BLI_dir_create_recursive(), FILE_MAX, result, and SEP_STR.
Referenced by blender::gpu::VKShaderCompiler::cache_dir_clear_old(), read_spirv_from_disk(), and write_spirv_to_disk().
|
inline |
Assume UNORM/Float target. Used with #glReadPixels.
Definition at line 488 of file gl_texture.hh.
References BLI_assert_msg.
Referenced by blender::gpu::GLFrameBuffer::read().
|
static |
Definition at line 486 of file vk_shader.cc.
References G, G_DEBUG_GPU_RENDERDOC, and result.
|
static |
Definition at line 165 of file vk_shader_compiler.cc.
References blender::gpu::VKShaderModule::combined_sources, blender::gpu::VKShaderModule::compilation_result, G, G_DEBUG_GPU_RENDERDOC, GPU_DEVICE_QUALCOMM, GPU_DRIVER_ANY, GPU_OS_ANY, GPU_type_matches(), options, read_spirv_from_disk(), to_stage_name(), and write_spirv_to_disk().
Referenced by blender::gpu::VKShaderCompiler::compile_module().
|
constexpr |
Definition at line 1040 of file mtl_shader_generator.mm.
References const_strlen(), and str.
Referenced by const_strlen().
|
static |
Definition at line 980 of file vk_data_conversion.cc.
References b, convert_float_formats(), float_to_uint32_t(), SHIFT_B, SHIFT_G, SHIFT_R, and blender::gpu::PixelValue< InnerType >::value.
|
static |
Definition at line 999 of file vk_data_conversion.cc.
References blender::gpu::ComponentValue< InnerType >::value.
|
static |
Definition at line 1012 of file vk_data_conversion.cc.
References blender::gpu::ComponentValue< InnerType >::value.
| void blender::gpu::convert | ( | DestinationType & | dst, |
| const SourceType & | src ) |
Definition at line 894 of file vk_data_conversion.cc.
Definition at line 946 of file vk_data_conversion.cc.
References convert(), blender::math::float_to_half(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
| void blender::gpu::convert | ( | F32 & | dst, |
| const SignedNormalized< StorageType > & | src ) |
| void blender::gpu::convert | ( | F32 & | dst, |
| const UnsignedNormalized< StorageType > & | src ) |
Definition at line 874 of file vk_data_conversion.cc.
References blender::gpu::UnsignedNormalized< InnerType >::scalar(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
|
static |
Definition at line 970 of file vk_data_conversion.cc.
References convert_float_formats(), MASK_10_BITS, MASK_11_BITS, SHIFT_B, SHIFT_G, SHIFT_R, uint32_t_to_float(), and blender::gpu::PixelValue< InnerType >::value.
Definition at line 916 of file vk_data_conversion.cc.
References blender::gpu::HALF4::get_b(), blender::gpu::HALF4::get_g(), blender::gpu::HALF4::get_r(), blender::math::half_to_float(), and blender::gpu::PixelValue< InnerType >::value.
Definition at line 938 of file vk_data_conversion.cc.
References blender::ColorRGBA< ChannelStorageType, Space, Alpha >::a, blender::ColorRGBA< ChannelStorageType, Space, Alpha >::b, blender::ColorRGBA< ChannelStorageType, Space, Alpha >::g, blender::ColorRGBA< ChannelStorageType, Space, Alpha >::r, and blender::gpu::PixelValue< InnerType >::value.
Definition at line 911 of file vk_data_conversion.cc.
References blender::ColorSceneLinearByteEncoded4b< Alpha >::decode(), and blender::gpu::PixelValue< InnerType >::value.
Definition at line 923 of file vk_data_conversion.cc.
References blender::math::float_to_half(), blender::gpu::HALF4::set_a(), blender::gpu::HALF4::set_b(), blender::gpu::HALF4::set_g(), blender::gpu::HALF4::set_r(), and blender::gpu::PixelValue< InnerType >::value.
| void blender::gpu::convert | ( | MutableSpan< DestinationType > | dst, |
| Span< SourceType > | src ) |
Definition at line 1019 of file vk_data_conversion.cc.
References BLI_assert, convert(), blender::MutableSpan< T >::size(), and blender::Span< T >::size().
| void blender::gpu::convert | ( | SignedNormalized< StorageType > & | dst, |
| const F32 & | src ) |
Definition at line 849 of file vk_data_conversion.cc.
References clamp_i(), blender::gpu::SignedNormalized< InnerType >::delta(), blender::gpu::SignedNormalized< InnerType >::max(), max, blender::gpu::SignedNormalized< InnerType >::scalar(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::SignedNormalized< InnerType >::value.
Referenced by convert(), convert(), convert(), convert_per_component(), and convert_per_pixel().
Definition at line 906 of file vk_data_conversion.cc.
References blender::ColorSceneLinear4f< Alpha >::encode(), and blender::gpu::PixelValue< InnerType >::value.
|
static |
Definition at line 991 of file vk_data_conversion.cc.
References blender::gpu::ComponentValue< InnerType >::value.
|
static |
Definition at line 1006 of file vk_data_conversion.cc.
References blender::gpu::ComponentValue< InnerType >::value.
| void blender::gpu::convert | ( | UI32 & | dst, |
| const UnsignedNormalized< StorageType > & | src ) |
Definition at line 886 of file vk_data_conversion.cc.
References blender::gpu::UnsignedNormalized< InnerType >::scalar(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
Definition at line 955 of file vk_data_conversion.cc.
References convert(), blender::math::half_to_float(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
| void blender::gpu::convert | ( | UnsignedNormalized< StorageType > & | , |
| const UI32 & | ) |
Definition at line 881 of file vk_data_conversion.cc.
References BLI_assert_unreachable.
| void blender::gpu::convert | ( | UnsignedNormalized< StorageType > & | dst, |
| const F32 & | src ) |
Definition at line 864 of file vk_data_conversion.cc.
References max, max_ff(), blender::gpu::UnsignedNormalized< InnerType >::scalar(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
|
static |
Definition at line 1051 of file vk_data_conversion.cc.
References B10F_G11F_R11F_TO_FLOAT, convert_per_component(), convert_per_pixel(), DEPTH24_STENCIL8_TO_UINT, DEPTH32F_STENCIL8_TO_UINT, DEPTH_COMPONENT24_TO_FLOAT, DEPTH_COMPONENT24_TO_UINT, FLOAT3_TO_FLOAT4, FLOAT3_TO_HALF4, FLOAT4_TO_FLOAT3, FLOAT_TO_B10F_G11F_R11F, FLOAT_TO_DEPTH_COMPONENT24, FLOAT_TO_HALF, blender::math::float_to_half_array(), FLOAT_TO_SNORM16, FLOAT_TO_SNORM8, FLOAT_TO_SRGBA8, FLOAT_TO_UNORM16, FLOAT_TO_UNORM32, FLOAT_TO_UNORM8, GPU_DEPTH_COMPONENT32F, HALF4_TO_FLOAT3, HALF_TO_FLOAT, blender::math::half_to_float_array(), HALF_TO_UI8, I16_TO_I32, I32_TO_I16, I32_TO_I8, I8_TO_I32, PASS_THROUGH, PASS_THROUGH_D32F_S8, SNORM16_TO_FLOAT, SNORM8_TO_FLOAT, SRGBA8_TO_FLOAT, to_bytesize(), to_component_len(), UI16_TO_UI32, UI32_TO_UI16, UI32_TO_UI8, UI8_TO_HALF, UI8_TO_UI32, UINT_TO_DEPTH24_STENCIL8, UINT_TO_DEPTH32F_STENCIL8, UINT_TO_DEPTH_COMPONENT24, UNORM16_TO_FLOAT, UNORM32_TO_FLOAT, UNORM8_TO_FLOAT, and UNSUPPORTED.
Referenced by convert_device_to_host(), and convert_host_to_device().
| void blender::gpu::convert_device_to_host | ( | void * | dst_buffer, |
| const void * | src_buffer, | ||
| size_t | buffer_size, | ||
| eGPUDataFormat | host_format, | ||
| eGPUTextureFormat | host_texture_format, | ||
| eGPUTextureFormat | device_format ) |
Convert device buffer to host buffer.
| dst_buffer | host buffer |
| src_buffer | device buffer. |
| buffer_size | number of pixels to convert from the start of the given buffer. |
| host_format | format of the host buffer |
| host_texture_format | texture format of the host buffer. |
| device_format | format of the device buffer. |
Definition at line 1237 of file vk_data_conversion.cc.
References BLI_assert_msg, convert_buffer(), host_to_device(), reversed(), and UNSUPPORTED.
Referenced by blender::gpu::VKTexture::read_sub(), blender::gpu::tests::TEST(), and blender::gpu::tests::TEST().
| uint32_t blender::gpu::convert_float_formats | ( | uint32_t | value | ) |
Convert between low precision floating (including 32 bit floats).
The input and output values are bits (uint32_t) as this function does a bit-wise operations to convert between the formats. Additional conversion rules can be applied to the conversion function. Due to the implementation the compiler would make an optimized version depending on the actual possibilities.
| DestinationFormat | FloatingPointFormat of the value that is converted to. |
| SourceFormat | FloatingPointFormat of the value that is converted from. |
| ClampNegativeToZero | Should negative values be clamped to zero when DestinationFormat doesn't contain a sign bit. Also -Inf will be clamped to zero. |
When set to false and DestinationFormat doesn't contain a sign bit the value will be made absolute.
Definition at line 169 of file vk_data_conversion.hh.
References is_zero(), and result.
Referenced by convert(), convert(), blender::gpu::tests::TEST(), and blender::gpu::tests::TEST().
| void blender::gpu::convert_host_to_device | ( | void * | dst_buffer, |
| const void * | src_buffer, | ||
| size_t | buffer_size, | ||
| eGPUDataFormat | host_format, | ||
| eGPUTextureFormat | host_texture_format, | ||
| eGPUTextureFormat | device_format ) |
Convert host buffer to device buffer.
| dst_buffer | device buffer. |
| src_buffer | host buffer. |
| buffer_size | number of pixels to convert from the start of the given buffer. |
| host_format | format of the host buffer. |
| host_texture_format | texture format of the host buffer. |
| device_format | format of the device buffer. |
Definition at line 1225 of file vk_data_conversion.cc.
References BLI_assert, convert_buffer(), host_to_device(), and UNSUPPORTED.
Referenced by blender::gpu::VKTexture::clear(), blender::gpu::tests::TEST(), blender::gpu::tests::TEST(), and blender::gpu::VKTexture::update_sub().
Definition at line 54 of file GPU_attribute_convert.hh.
|
inline |
Definition at line 44 of file GPU_attribute_convert.hh.
References convert_normalized_f32_to_i10().
|
inline |
|
inline |
Definition at line 31 of file GPU_attribute_convert.hh.
References x.
Referenced by convert_normal().
| void blender::gpu::convert_normals | ( | const Span< float3 > | src, |
| MutableSpan< PackedNormal > | dst ) |
Definition at line 23 of file gpu_vertex_format_normals.cc.
References convert_normals(), and convert_normals_impl().
| void blender::gpu::convert_normals | ( | const Span< float3 > | src, |
| MutableSpan< short4 > | dst ) |
Definition at line 27 of file gpu_vertex_format_normals.cc.
References convert_normals(), and convert_normals_impl().
| void blender::gpu::convert_normals | ( | Span< float3 > | src, |
| MutableSpan< GPUType > | dst ) |
|
static |
Definition at line 14 of file gpu_vertex_format_normals.cc.
References blender::Span< T >::index_range(), and blender::threading::parallel_for().
Referenced by convert_normals(), and convert_normals().
| void blender::gpu::convert_per_component | ( | void * | dst_memory, |
| const void * | src_memory, | ||
| size_t | buffer_size, | ||
| eGPUTextureFormat | device_format ) |
Definition at line 1028 of file vk_data_conversion.cc.
References convert(), and to_component_len().
Referenced by convert_buffer().
| void blender::gpu::convert_per_pixel | ( | void * | dst_memory, |
| const void * | src_memory, | ||
| size_t | buffer_size ) |
Definition at line 1042 of file vk_data_conversion.cc.
References convert().
Referenced by convert_buffer().
|
static |
Definition at line 57 of file gpu_platform.cc.
References BLI_dynstr_appendf(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), and BLI_string_replace_char().
Referenced by blender::gpu::GPUPlatformGlobal::init().
|
static |
Definition at line 33 of file gpu_platform.cc.
References BLI_dynstr_append(), BLI_dynstr_appendf(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), BLI_string_replace_char(), GPU_SUPPORT_LEVEL_LIMITED, and GPU_SUPPORT_LEVEL_SUPPORTED.
Referenced by blender::gpu::GPUPlatformGlobal::init().
|
static |
Definition at line 1178 of file vk_shader.cc.
References declare_emit_vertex().
Referenced by declare_emit_vertex(), and blender::gpu::VKShader::geometry_layout_declare().
|
static |
|
constexpr |
The default load store action when not using load stores.
Definition at line 20 of file vk_framebuffer.cc.
References GPU_LOADACTION_LOAD, and GPU_STOREACTION_STORE.
Referenced by blender::gpu::VKFrameBuffer::bind(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), and blender::gpu::VKFrameBuffer::VKFrameBuffer().
|
static |
Definition at line 347 of file gl_backend.cc.
References blender::gpu::debug::check_gl_error(), equals_v4v4(), fb(), i, MEM_callocN(), MEM_freeN(), and UNPACK4.
Referenced by detect_workarounds().
|
static |
Definition at line 397 of file gl_backend.cc.
References BLI_windows_get_directx_driver_version(), blender::gpu::GLContext::clip_control_support, blender::gpu::GLContext::debug_layer_support, blender::gpu::GLContext::debug_layer_workaround, detect_mip_render_workaround(), blender::gpu::GLContext::direct_state_access_support, blender::gpu::GLContext::framebuffer_fetch_support, G, G_DEBUG_GPU_FORCE_WORKAROUNDS, GCaps, GPU_DEVICE_ATI, GPU_DEVICE_INTEL, GPU_DEVICE_QUALCOMM, GPU_DRIVER_ANY, GPU_DRIVER_OFFICIAL, GPU_DRIVER_OPENSOURCE, GPU_OS_ANY, GPU_OS_UNIX, GPU_OS_WIN, GPU_type_matches(), is_bad_AMD_driver(), L, blender::gpu::GLContext::layered_rendering_support, match_renderer(), blender::gpu::GLContext::multi_bind_image_support, blender::gpu::GLContext::multi_bind_support, blender::gpu::GLContext::multi_draw_indirect_support, blender::gpu::GLContext::native_barycentric_support, printf, blender::gpu::GLContext::shader_draw_parameters_support, blender::gpu::GLContext::texture_barrier_support, blender::gpu::GLContext::texture_filter_anisotropic_support, and blender::gpu::GLContext::unused_fb_slot_workaround.
|
static |
Definition at line 294 of file vk_backend.cc.
References GPU_OS_MAC, GPU_OS_UNIX, and GPU_OS_WIN.
Referenced by blender::gpu::VKBackend::platform_init().
|
static |
Definition at line 57 of file vk_memory_layout.hh.
Referenced by reserve().
| blender::gpu::ENUM_OPERATORS | ( | MTLPipelineStateDirtyFlag | , |
| MTL_PIPELINE_STATE_CULLMODE_FLAG | ) |
References MTL_PIPELINE_STATE_CULLMODE_FLAG.
| blender::gpu::ENUM_OPERATORS | ( | RenderGraphFlushFlags | , |
| RenderGraphFlushFlags::WAIT_FOR_COMPLETION | ) |
References WAIT_FOR_COMPLETION.
| blender::gpu::ENUM_OPERATORS | ( | ShaderStage | , |
| ShaderStage::ANY | ) |
References ANY.
|
static |
Definition at line 139 of file mtl_shader_generator.mm.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), blender::gpu::MSLGeneratorInterface::clip_distances, and blender::Vector< T, InlineBufferCapacity, Allocator >::end().
|
static |
Definition at line 1167 of file vk_shader.cc.
Referenced by blender::gpu::GLShader::geometry_interface_declare().
|
static |
Definition at line 691 of file vk_data_conversion.cc.
Referenced by convert().
|
inline |
Definition at line 260 of file GPU_format.hh.
References BLI_assert_unreachable, CASE, GPU_DATA_FORMAT_EXPAND, and Invalid.
Referenced by format_component_len(), and blender::gpu::Immediate::polyline_draw_workaround().
|
inline |
Definition at line 28 of file gpu_vertex_format_private.hh.
References format_component_len().
|
inline |
Definition at line 391 of file mtl_shader.hh.
References format_resize_comp().
Referenced by mtl_convert_vertex_format_ex().
|
inline |
Definition at line 349 of file mtl_shader.hh.
References BLI_assert_unreachable, and RESIZE_TYPE.
Referenced by blender::gpu::MTLImmediate::end(), and format_get_component_type().
|
static |
Definition at line 363 of file mtl_shader_generator.mm.
References BLI_assert_unreachable, blender::gpu::shader::bool_t, blender::gpu::shader::ShaderCreateInfo::compilation_constants_, blender::gpu::shader::SpecializationConstant::Value::i, blender::gpu::shader::int_t, blender::gpu::shader::CompilationConstant::name, blender::gpu::shader::CompilationConstant::type, blender::gpu::shader::SpecializationConstant::Value::u, blender::gpu::shader::uint_t, and blender::gpu::shader::CompilationConstant::value.
|
static |
|
inline |
Definition at line 600 of file mtl_shader_generator.hh.
References blender::gpu::shader::float2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float4_t, and blender::gpu::shader::float_t.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_vertex_attribute_input_population().
|
inline |
Definition at line 408 of file vk_shader.cc.
References blender::gpu::shader::float3x3_t, and blender::gpu::shader::float4x4_t.
Referenced by print_interface_as_attributes(), and print_interface_as_struct().
|
inline |
Definition at line 569 of file mtl_shader_generator.hh.
References blender::gpu::shader::float3x3_t, and blender::gpu::shader::float4x4_t.
|
inline |
Definition at line 557 of file mtl_shader_generator.hh.
Referenced by blender::gpu::MSLGeneratorInterface::bake_shader_interface(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_attribute_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_in_struct(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_out_struct(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_output_population(), and blender::gpu::MSLGeneratorInterface::resolve_input_attribute_locations().
|
inline |
Definition at line 589 of file mtl_shader_generator.hh.
References blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, and blender::gpu::shader::float4x4_t.
|
inline |
| size_t blender::gpu::get_mtl_format_bytesize | ( | MTLPixelFormat | tex_format | ) |
Definition at line 193 of file mtl_texture_util.mm.
References BLI_assert_msg.
Referenced by blender::gpu::MTLTexture::init_internal(), and blender::gpu::MTLTexture::update_sub().
| int blender::gpu::get_mtl_format_num_components | ( | MTLPixelFormat | tex_format | ) |
Definition at line 269 of file mtl_texture_util.mm.
References BLI_assert_msg.
Referenced by blender::gpu::MTLTexture::update_sub().
|
static |
Definition at line 349 of file mtl_backend.mm.
References BLI_assert, and is_apple_sillicon().
|
static |
Definition at line 324 of file mtl_backend.mm.
References BLI_assert, and is_apple_sillicon().
|
inline |
Definition at line 78 of file mtl_shader_interface.hh.
References BLI_assert_unreachable, COMPUTE, FRAGMENT, and VERTEX.
Referenced by blender::gpu::MTLShaderInterface::get_argument_buffer_bind_index(), blender::gpu::MSLGeneratorInterface::get_sampler_argument_buffer_bind_index(), and blender::gpu::MTLShaderInterface::set_sampler_properties().
|
inline |
Definition at line 482 of file mtl_shader_generator.hh.
References BLI_assert_unreachable, COMPUTE, FRAGMENT, and VERTEX.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_compute_entry_stub(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_entry_stub(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_output_population(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_tile_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_global_uniform_population(), blender::gpu::MSLGeneratorInterface::generate_msl_texture_vars(), blender::gpu::MSLGeneratorInterface::generate_msl_uniform_block_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_attribute_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_entry_stub(), and blender::gpu::MSLGeneratorInterface::generate_msl_vertex_output_population().
|
inline |
Definition at line 466 of file mtl_shader_generator.hh.
References BLI_assert_unreachable, COMPUTE, FRAGMENT, and VERTEX.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_compute_entry_stub(), blender::gpu::MSLGeneratorInterface::generate_msl_compute_inputs_string(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_entry_stub(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_inputs_string(), blender::gpu::MSLGeneratorInterface::generate_msl_texture_vars(), blender::gpu::MSLGeneratorInterface::generate_msl_uniform_block_population(), blender::gpu::MSLGeneratorInterface::generate_msl_uniforms_input_string(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_entry_stub(), and blender::gpu::MSLGeneratorInterface::generate_msl_vertex_inputs_string().
|
static |
Definition at line 392 of file gl_backend.cc.
References i.
|
static |
Definition at line 179 of file mtl_state.mm.
References BLI_assert, GPU_DEPTH_ALWAYS, GPU_DEPTH_EQUAL, GPU_DEPTH_GREATER, GPU_DEPTH_GREATER_EQUAL, GPU_DEPTH_LESS, GPU_DEPTH_LESS_EQUAL, and GPU_DEPTH_NONE.
|
inlinestatic |
Definition at line 37 of file mtl_primitive.hh.
References GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_LINE_STRIP_ADJ, GPU_PRIM_LINES, GPU_PRIM_LINES_ADJ, GPU_PRIM_NONE, GPU_PRIM_POINTS, GPU_PRIM_TRI_FAN, GPU_PRIM_TRI_STRIP, GPU_PRIM_TRIS, and GPU_PRIM_TRIS_ADJ.
Referenced by blender::gpu::MTLImmediate::begin(), blender::gpu::MTLBatch::bind(), and blender::gpu::MTLImmediate::end().
|
static |
Definition at line 203 of file mtl_state.mm.
References BLI_assert, GPU_STENCIL_ALWAYS, GPU_STENCIL_EQUAL, GPU_STENCIL_NEQUAL, and GPU_STENCIL_NONE.
| MTLPixelFormat blender::gpu::gpu_texture_format_to_metal | ( | eGPUTextureFormat | tex_format | ) |
Definition at line 35 of file mtl_texture_util.mm.
References BLI_assert_msg, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::MTLShader::bake_current_pipeline_state(), blender::gpu::MTLTexture::init_internal(), and blender::gpu::MTLTexture::update_sub().
|
static |
Definition at line 156 of file gl_shader_interface.cc.
References BLI_assert, blender::gpu::shader::bool_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, and blender::gpu::shader::uint_t.
Referenced by blender::gpu::GLShaderInterface::GLShaderInterface().
|
inline |
Definition at line 669 of file mtl_texture.hh.
References GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_FORMAT_VIEW, GPU_TEXTURE_USAGE_GENERAL, GPU_TEXTURE_USAGE_SHADER_READ, and GPU_TEXTURE_USAGE_SHADER_WRITE.
Referenced by blender::gpu::MTLTexture::MTLTexture().
| bool blender::gpu::GPU_vulkan_is_supported_driver | ( | VkPhysicalDevice | vk_physical_device | ) |
Is the driver of the given physical device supported?
There are some drivers that have known issues and should not be used. This check needs to be identical between GPU module and GHOST, otherwise GHOST can still select a device which isn't supported.
For example on a Linux machine where llvmpipe is installed and an not supported NVIDIA driver Blender would detect a supported configuration using llvmpipe, but GHOST could still select the unsupported NVIDIA driver.
Returns true when supported, false when not supported.
Definition at line 48 of file vk_backend.cc.
References CLOG_WARN, blender::StringRefBase::find(), LOG, and blender::StringRefBase::not_found.
Referenced by ensure_vulkan_device(), init_device_list(), and blender::gpu::VKBackend::is_supported().
|
static |
Definition at line 613 of file vk_data_conversion.cc.
References GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, GPU_DATA_UINT_24_8, type_of_conversion_float(), type_of_conversion_half(), type_of_conversion_int(), type_of_conversion_r10g10b10a2(), type_of_conversion_r11g11b10(), type_of_conversion_ubyte(), type_of_conversion_uint(), type_of_conversion_uint248(), and UNSUPPORTED.
Referenced by convert_device_to_host(), and convert_host_to_device().
|
inlinestatic |
Definition at line 93 of file gl_shader_interface.cc.
Referenced by blender::gpu::GLShaderInterface::GLShaderInterface().
|
inline |
IMPORTANT: These last two expects no restart primitive. Asserting for this would be too slow. Just don't be stupid. This is needed for polylines but should be deprecated. See GPU_batch_draw_expanded_parameter_get
Definition at line 123 of file GPU_index_buffer.hh.
References GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_LINES_ADJ, GPU_PRIM_POINTS, GPU_PRIM_TRIS, and GPU_PRIM_TRIS_ADJ.
Referenced by GPU_batch_draw_expanded_parameter_get(), GPU_indexbuf_build_from_memory(), and GPU_indexbuf_primitive_len().
|
static |
Definition at line 21 of file vk_push_constants.cc.
References align(), blender::gpu::shader::ShaderCreateInfo::PushConst::array_size, blender::gpu::VKPushConstants::Layout::PushConstant::array_size, blender::gpu::VKPushConstants::Layout::PushConstant::inner_row_padding, blender::gpu::ShaderInput::location, blender::gpu::VKPushConstants::Layout::PushConstant::location, blender::gpu::VKPushConstants::Layout::PushConstant::offset, reserve(), blender::gpu::shader::ShaderCreateInfo::PushConst::type, and blender::gpu::VKPushConstants::Layout::PushConstant::type.
Referenced by init_struct().
|
static |
Definition at line 318 of file vk_backend.cc.
References b, blender::Array< T, InlineBufferCapacity, Allocator >::data(), GPG, GPU_vulkan_is_supported_driver(), missing_capabilities_get(), and GPUDevice::name.
Referenced by blender::gpu::VKBackend::context_alloc().
| void blender::gpu::init_struct | ( | const shader::ShaderCreateInfo & | info, |
| const VKShaderInterface & | interface, | ||
| Vector< VKPushConstants::Layout::PushConstant > & | r_struct, | ||
| uint32_t * | r_offset ) |
Definition at line 66 of file vk_push_constants.cc.
References align_end_of_struct(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::StringRefNull::c_str(), init_constant(), blender::gpu::shader::ShaderCreateInfo::PushConst::name, and blender::gpu::shader::ShaderCreateInfo::push_constants_.
Referenced by blender::gpu::VKPushConstants::Layout::init().
| bool blender::gpu::is_apple_sillicon | ( | id< MTLDevice > | device | ) |
Definition at line 313 of file mtl_backend.mm.
References BLI_assert, and length().
Referenced by get_num_efficiency_cpu_cores(), and get_num_performance_cpu_cores().
|
static |
Definition at line 91 of file gl_backend.cc.
References parse_version().
Referenced by detect_workarounds().
|
inline |
Definition at line 498 of file mtl_shader_generator.hh.
References MTL_DATATYPE_FLOAT, MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT3x3, MTL_DATATYPE_FLOAT4, MTL_DATATYPE_FLOAT4x4, MTL_DATATYPE_INT, MTL_DATATYPE_INT1010102_NORM, MTL_DATATYPE_INT2, MTL_DATATYPE_INT3, MTL_DATATYPE_INT4, MTL_DATATYPE_PACKED_FLOAT2, MTL_DATATYPE_PACKED_FLOAT3, MTL_DATATYPE_UCHAR, MTL_DATATYPE_UCHAR2, MTL_DATATYPE_UCHAR3, MTL_DATATYPE_UCHAR4, MTL_DATATYPE_UINT, MTL_DATATYPE_UINT1010102_NORM, MTL_DATATYPE_UINT2, MTL_DATATYPE_UINT3, and MTL_DATATYPE_UINT4.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_texture_vars(), blender::gpu::MSLGeneratorInterface::generate_msl_uniform_block_population(), and blender::gpu::MSLGeneratorInterface::generate_msl_uniforms_input_string().
| bool blender::gpu::is_fetch_float | ( | VertAttrType | attr_type | ) |
Definition at line 268 of file gpu_vertex_format.cc.
Referenced by blender::gpu::Immediate::polyline_draw_workaround().
| bool blender::gpu::is_fetch_int_to_float | ( | VertAttrType | attr_type | ) |
Definition at line 255 of file gpu_vertex_format.cc.
Referenced by blender::gpu::Immediate::polyline_draw_workaround().
| bool blender::gpu::is_fetch_normalized | ( | VertAttrType | attr_type | ) |
Definition at line 238 of file gpu_vertex_format.cc.
|
inline |
Definition at line 551 of file mtl_shader_generator.hh.
References blender::gpu::shader::float3x3_t, and blender::gpu::shader::float4x4_t.
|
inline |
Definition at line 545 of file mtl_shader_generator.hh.
Referenced by blender::gpu::MSLGeneratorInterface::bake_shader_interface(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_attribute_input_population(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_in_struct(), blender::gpu::MSLGeneratorInterface::generate_msl_vertex_out_struct(), and blender::gpu::MSLGeneratorInterface::generate_msl_vertex_output_population().
|
static |
Definition at line 468 of file vk_shader.cc.
Referenced by blender::gpu::GLShader::fragment_interface_declare(), blender::gpu::GLShader::vertex_interface_declare(), and blender::gpu::VKShader::vertex_interface_declare().
|
static |
Definition at line 40 of file gl_backend.cc.
References blender::StringRefBase::endswith(), blender::StringRefBase::find(), and blender::StringRefBase::not_found.
Referenced by detect_workarounds().
|
static |
Definition at line 559 of file vk_texture.cc.
References GPU_TEXTURE_USAGE_ATTACHMENT, and GPU_TEXTURE_USAGE_MEMORY_EXPORT.
|
static |
Definition at line 129 of file vk_backend.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), and blender::Array< T, InlineBufferCapacity, Allocator >::data().
Referenced by init_device_list(), and blender::gpu::VKBackend::is_supported().
|
inline |
Definition at line 613 of file mtl_shader.hh.
References mtl_convert_vertex_format_ex().
Referenced by blender::gpu::MTLImmediate::end().
|
inline |
Returns whether the METAL API can internally convert between the input type of data in the incoming vertex buffer and the format used by the vertex attribute inside the shader.
If implicit conversion is not possible, then we can fallback to performing manual attribute conversion using the special attribute read function specializations in the shader. These functions selectively convert between types based on the specified vertex attribute GPUVertFetchMode fetch_mode e.g. GPU_FETCH_INT.
Definition at line 558 of file mtl_shader.hh.
References BLI_assert_msg, ELEM, format_get_component_type(), mtl_format_is_normalized(), and to_mtl().
Referenced by mtl_convert_vertex_format().
| MTLVertexFormat blender::gpu::mtl_datatype_to_vertex_type | ( | eMTLDataType | type | ) |
Definition at line 629 of file mtl_shader_interface.mm.
References BLI_assert, BLI_assert_msg, MTL_DATATYPE_BOOL, MTL_DATATYPE_BOOL2, MTL_DATATYPE_BOOL3, MTL_DATATYPE_BOOL4, MTL_DATATYPE_CHAR, MTL_DATATYPE_CHAR2, MTL_DATATYPE_CHAR3, MTL_DATATYPE_CHAR4, MTL_DATATYPE_FLOAT, MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT2x2, MTL_DATATYPE_FLOAT2x3, MTL_DATATYPE_FLOAT2x4, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT3x2, MTL_DATATYPE_FLOAT3x3, MTL_DATATYPE_FLOAT3x4, MTL_DATATYPE_FLOAT4, MTL_DATATYPE_FLOAT4x2, MTL_DATATYPE_FLOAT4x3, MTL_DATATYPE_FLOAT4x4, MTL_DATATYPE_HALF2x2, MTL_DATATYPE_HALF2x3, MTL_DATATYPE_HALF2x4, MTL_DATATYPE_HALF3x2, MTL_DATATYPE_HALF3x3, MTL_DATATYPE_HALF3x4, MTL_DATATYPE_HALF4x2, MTL_DATATYPE_HALF4x3, MTL_DATATYPE_HALF4x4, MTL_DATATYPE_INT, MTL_DATATYPE_INT1010102_NORM, MTL_DATATYPE_INT2, MTL_DATATYPE_INT3, MTL_DATATYPE_INT4, MTL_DATATYPE_LONG, MTL_DATATYPE_LONG2, MTL_DATATYPE_LONG3, MTL_DATATYPE_LONG4, MTL_DATATYPE_SHORT, MTL_DATATYPE_SHORT2, MTL_DATATYPE_SHORT3, MTL_DATATYPE_SHORT4, MTL_DATATYPE_UCHAR, MTL_DATATYPE_UCHAR2, MTL_DATATYPE_UCHAR3, MTL_DATATYPE_UCHAR4, MTL_DATATYPE_UINT, MTL_DATATYPE_UINT1010102_NORM, MTL_DATATYPE_UINT2, MTL_DATATYPE_UINT3, MTL_DATATYPE_UINT4, MTL_DATATYPE_ULONG, MTL_DATATYPE_ULONG2, MTL_DATATYPE_ULONG3, MTL_DATATYPE_ULONG4, MTL_DATATYPE_USHORT, MTL_DATATYPE_USHORT2, MTL_DATATYPE_USHORT3, and MTL_DATATYPE_USHORT4.
Referenced by blender::gpu::MSLGeneratorInterface::bake_shader_interface().
|
static |
Definition at line 286 of file mtl_backend.mm.
|
inline |
Definition at line 482 of file mtl_shader.hh.
References FORMAT_PER_TYPE.
|
inline |
Definition at line 607 of file mtl_texture.hh.
Referenced by blender::gpu::MTLTexture::update_sub().
|
inline |
Definition at line 522 of file mtl_shader.hh.
References FORMAT_PER_TYPE.
Referenced by mtl_convert_vertex_format_ex().
|
inline |
Definition at line 588 of file mtl_texture.hh.
| bool blender::gpu::mtl_format_supports_blending | ( | MTLPixelFormat | format | ) |
Definition at line 338 of file mtl_texture_util.mm.
References blender::gpu::MTLBackend::get_capabilities(), blender::gpu::MTLCapabilities::supports_family_mac1, and blender::gpu::MTLCapabilities::supports_family_mac_catalyst1.
Referenced by blender::gpu::MTLShader::bake_pipeline_state().
| MTLLoadAction blender::gpu::mtl_load_action_from_gpu | ( | eGPULoadOp | action | ) |
Definition at line 1525 of file mtl_framebuffer.mm.
References GPU_LOADACTION_CLEAR, and GPU_LOADACTION_LOAD.
Referenced by blender::gpu::MTLFrameBuffer::bake_render_pass_descriptor().
|
inlinestatic |
Definition at line 65 of file mtl_primitive.hh.
References BLI_assert, GPU_PRIM_LINE_LOOP, GPU_PRIM_NONE, and GPU_PRIM_TRI_FAN.
Referenced by blender::gpu::MTLImmediate::end().
|
inlinestatic |
Utility functions
Definition at line 22 of file mtl_primitive.hh.
Referenced by blender::gpu::MTLImmediate::begin(), and blender::gpu::MTLContext::ensure_render_pipeline_state().
|
static |
Definition at line 276 of file mtl_state.mm.
References GPU_CULL_BACK, GPU_CULL_FRONT, and mtl_stencil_set_op_separate().
|
static |
Definition at line 252 of file mtl_state.mm.
References BLI_assert, blender::gpu::MTLContextGlobalShaderPipelineState::depth_stencil_state, blender::gpu::MTLContextGlobalShaderPipelineState::dirty_flags, GPU_CULL_BACK, GPU_CULL_FRONT, MTL_PIPELINE_STATE_DEPTHSTENCIL_FLAG, blender::gpu::MTLContextDepthStencilState::stencil_op_back_depth_fail, blender::gpu::MTLContextDepthStencilState::stencil_op_back_depthstencil_pass, blender::gpu::MTLContextDepthStencilState::stencil_op_back_stencil_fail, blender::gpu::MTLContextDepthStencilState::stencil_op_front_depth_fail, blender::gpu::MTLContextDepthStencilState::stencil_op_front_depthstencil_pass, and blender::gpu::MTLContextDepthStencilState::stencil_op_front_stencil_fail.
Referenced by mtl_stencil_set_op().
| MTLStoreAction blender::gpu::mtl_store_action_from_gpu | ( | eGPUStoreOp | action | ) |
Definition at line 1532 of file mtl_framebuffer.mm.
References GPU_STOREACTION_STORE.
Referenced by blender::gpu::MTLFrameBuffer::bake_render_pass_descriptor().
|
inline |
Definition at line 639 of file mtl_texture.hh.
References GPU_TEXTURE_USAGE_ATOMIC, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_FORMAT_VIEW, GPU_TEXTURE_USAGE_GENERAL, GPU_TEXTURE_USAGE_HOST_READ, GPU_TEXTURE_USAGE_SHADER_READ, and GPU_TEXTURE_USAGE_SHADER_WRITE.
|
inlinestatic |
Definition at line 79 of file mtl_primitive.hh.
References BLI_assert.
|
static |
Add string to name buffer. Utility function to be used in bake_shader_interface. Returns the offset of the inserted name.
Definition at line 2713 of file mtl_shader_generator.mm.
References BLI_assert, max_ii(), and MEM_reallocN.
Referenced by blender::gpu::MSLGeneratorInterface::bake_shader_interface().
|
static |
Definition at line 118 of file vk_immediate.cc.
References DEFAULT_INTERNAL_BUFFER_SIZE, and max_ulul().
|
inline |
Definition at line 760 of file mtl_shader_generator.hh.
References begin().
|
inline |
Definition at line 770 of file mtl_shader_generator.hh.
References begin().
Definition at line 63 of file gpu_state_private.hh.
References b.
|
inline |
Definition at line 112 of file gpu_state_private.hh.
References b.
Definition at line 58 of file gpu_state_private.hh.
References b, and blender::gpu::GPUState::data.
|
inline |
Definition at line 107 of file gpu_state_private.hh.
References b, and blender::gpu::GPUStateMutable::data.
| BLI_INLINE bool blender::gpu::operator== | ( | const VKContext & | a, |
| const VKContext & | b ) |
Definition at line 170 of file vk_context.hh.
References b, and BLI_INLINE.
Definition at line 68 of file gpu_state_private.hh.
References b, and blender::gpu::GPUState::data.
|
inline |
Definition at line 117 of file gpu_state_private.hh.
References ARRAY_SIZE, b, blender::gpu::GPUStateMutable::data, and i.
Definition at line 75 of file gpu_state_private.hh.
References blender::gpu::GPUState::data.
|
inline |
Definition at line 126 of file gpu_state_private.hh.
References ARRAY_SIZE, blender::gpu::GPUStateMutable::data, and i.
|
static |
Definition at line 1630 of file mtl_shader_generator.mm.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_compute_inputs_string(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_inputs_string(), blender::gpu::MSLGeneratorInterface::generate_msl_textures_input_string(), blender::gpu::MSLGeneratorInterface::generate_msl_uniforms_input_string(), and blender::gpu::MSLGeneratorInterface::generate_msl_vertex_inputs_string().
|
static |
Definition at line 51 of file gl_backend.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), and v.
Referenced by is_bad_AMD_driver().
|
static |
Definition at line 293 of file mtl_index_buffer.mm.
Referenced by blender::gpu::MTLIndexBuf::get_index_buffer().
|
static |
Definition at line 236 of file mtl_index_buffer.mm.
Referenced by blender::gpu::MTLIndexBuf::get_index_buffer().
|
static |
Populates values with the given SpecializationStateDescriptor values.
Definition at line 767 of file mtl_shader.mm.
References BLI_assert_msg, blender::gpu::shader::bool_t, blender::gpu::shader::SpecializationConstant::Value::f, blender::gpu::shader::float_t, blender::gpu::shader::SpecializationConstant::Value::i, i, Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::gpu::shader::int_t, MTL_SHADER_SPECIALIZATION_CONSTANT_BASE_ID, blender::gpu::shader::SpecializationConstants::types, blender::gpu::shader::SpecializationConstant::Value::u, blender::gpu::shader::uint_t, and blender::gpu::SpecializationStateDescriptor::values.
Referenced by blender::gpu::MTLShader::bake_compute_pipeline_state(), and blender::gpu::MTLShader::bake_pipeline_state().
| void blender::gpu::present | ( | MTLRenderPassDescriptor * | blit_descriptor, |
| id< MTLRenderPipelineState > | blit_pso, | ||
| id< MTLTexture > | swapchain_texture, | ||
| id< CAMetalDrawable > | drawable ) |
Definition at line 2642 of file mtl_context.mm.
References blender::gpu::MTLContext::avg_drawable_latency_us, BLI_assert, BLI_time_sleep_ms(), blender::gpu::MTLCommandBufferManager::dec_active_command_buffer_count(), blender::gpu::MTLSafeFreeList::decrement_reference(), error(), blender::gpu::MTLContext::flush(), G, G_DEBUG_GPU, blender::gpu::MTLContext::get(), blender::gpu::MTLBufferPool::get_current_safe_list(), blender::gpu::MTLContext::get_global_memory_manager(), blender::gpu::MTLCommandBufferManager::inc_active_command_buffer_count(), blender::gpu::MTLSafeFreeList::increment_reference(), blender::gpu::MTLContext::latency_resolve_average(), blender::gpu::MTLContext::main_command_buffer, blender::gpu::MTLContext::max_drawables_in_flight, min_ii(), MTL_LOG_INFO, MTL_MAX_DRAWABLES, blender::gpu::MTLCommandBufferManager::num_active_cmd_bufs_in_system, and blender::gpu::MTLContext::queue.
Referenced by blender::gpu::MTLContext::MTLContext().
|
static |
Definition at line 207 of file vk_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE.
Referenced by print_resource(), and print_resource().
|
static |
Definition at line 453 of file vk_shader.cc.
References blender::gpu::shader::StageInterfaceInfo::instance_name, blender::StringRefBase::is_empty(), print_interface_as_attributes(), and print_interface_as_struct().
Referenced by blender::gpu::GLShader::fragment_interface_declare(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::GLShader::geometry_interface_declare(), blender::gpu::GLShader::vertex_interface_declare(), and blender::gpu::VKShader::vertex_interface_declare().
|
static |
Definition at line 419 of file vk_shader.cc.
References get_location_count(), inout, blender::gpu::shader::StageInterfaceInfo::inouts, and to_string().
Referenced by print_interface().
|
static |
Definition at line 431 of file vk_shader.cc.
References get_location_count(), inout, blender::gpu::shader::StageInterfaceInfo::inouts, blender::gpu::shader::StageInterfaceInfo::instance_name, blender::gpu::shader::StageInterfaceInfo::name, and to_string().
Referenced by print_interface().
|
static |
Definition at line 336 of file vk_shader.cc.
References blender::gpu::shader::no_restrict, blender::gpu::shader::read, and blender::gpu::shader::write.
Referenced by print_resource(), and print_resource().
|
static |
Definition at line 180 of file mtl_shader_generator.mm.
References ShaderCreateInfo::Resource::bind_type, blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE, blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, blender::gpu::shader::ShaderCreateInfo::Resource::STORAGE_BUFFER, ShaderCreateInfo::Resource::storagebuf, blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER, ShaderCreateInfo::Resource::uniformbuf, and blender::gpu::shader::write.
Referenced by blender::gpu::GLShader::fragment_interface_declare(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::shader::ShaderCreateInfo::operator<<, print_resource(), blender::gpu::GLShader::resources_declare(), blender::gpu::MTLShader::resources_declare(), and blender::gpu::VKShader::resources_declare().
|
static |
Definition at line 350 of file vk_shader.cc.
References ShaderCreateInfo::Resource::bind_type, ShaderCreateInfo::Image::format, blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE, ShaderCreateInfo::Resource::image, ShaderCreateInfo::Image::name, ShaderCreateInfo::Sampler::name, print_image_type(), print_qualifier(), ShaderCreateInfo::Image::qualifiers, blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, ShaderCreateInfo::Resource::sampler, blender::gpu::shader::ShaderCreateInfo::Resource::STORAGE_BUFFER, ShaderCreateInfo::Resource::storagebuf, to_string(), ShaderCreateInfo::Image::type, ShaderCreateInfo::Sampler::type, blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER, and ShaderCreateInfo::Resource::uniformbuf.
|
static |
Definition at line 400 of file vk_shader.cc.
References blender::gpu::VKShaderInterface::descriptor_set_location(), and print_resource().
| void blender::gpu::printf_begin | ( | Context * | ctx | ) |
Definition at line 327 of file gpu_shader_log.cc.
References Vector< T, InlineBufferCapacity, Allocator >::append(), blender::gpu::shader::gpu_shader_dependency_has_printf(), GPU_SHADER_PRINTF_MAX_CAPACITY, GPU_storagebuf_clear_to_zero(), GPU_storagebuf_create, and blender::gpu::Context::printf_buf.
Referenced by GPU_render_begin(), and GPU_render_step().
| void blender::gpu::printf_end | ( | Context * | ctx | ) |
Definition at line 341 of file gpu_shader_log.cc.
References BLI_assert_unreachable, data, blender::gpu::shader::PrintfFormat::Block::FLOAT, blender::gpu::shader::PrintfFormat::Block::fmt, blender::gpu::shader::gpu_shader_dependency_get_printf_format(), GPU_SHADER_PRINTF_MAX_CAPACITY, GPU_storagebuf_free(), GPU_storagebuf_read(), blender::gpu::shader::PrintfFormat::Block::INT, Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::gpu::shader::PrintfFormat::Block::NONE, Vector< T, InlineBufferCapacity, Allocator >::pop_last(), printf, blender::gpu::Context::printf_buf, blender::gpu::shader::PrintfFormat::Block::type, and blender::gpu::shader::PrintfFormat::Block::UINT.
Referenced by GPU_context_discard(), GPU_render_end(), and GPU_render_step().
|
static |
Definition at line 50 of file vk_shader_compiler.cc.
References BLI_exists(), BLI_file_touch(), blender::gpu::VKShaderModule::build_sources_hash(), cache_dir_get(), Vector< T, InlineBufferCapacity, Allocator >::data(), G, G_DEBUG_GPU_RENDERDOC, Vector< T, InlineBufferCapacity, Allocator >::resize(), SEP_STR, size(), blender::gpu::VKShaderModule::sources_hash, blender::gpu::VKShaderModule::spirv_binary, and blender::gpu::SPIRVSidecar::spirv_size.
Referenced by compile_ex().
|
static |
|
static |
Reserve space for the given type and array size.
This function doesn't handle alignment this needs to be done up front by calling 'align<Layout>' function. Caller is responsible for this.
'type': The type that needs to be reserved. 'array_size': The array_size that needs to be reserved. (0=no array). 'r_offset': When calling needs to be pointing to the aligned location where to reserve space. After the call it will point to the byte just after reserved space.
Definition at line 102 of file vk_memory_layout.hh.
References array_stride(), element_stride(), and size().
Referenced by def_attr(), init_constant(), and struct_size().
|
static |
Definition at line 639 of file vk_data_conversion.cc.
References CASE_PAIR, FLOAT, HALF, PASS_THROUGH, PASS_THROUGH_D32F_S8, and UNSUPPORTED.
Referenced by convert_device_to_host().
|
static |
Definition at line 324 of file vk_framebuffer.cc.
References GPULoadStore::clear_value, copy_v4_v4(), GPULoadStore::load_action, GPULoadStore::store_action, to_vk_attachment_load_op(), and to_vk_attachment_store_op().
Referenced by blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering().
|
static |
Definition at line 274 of file vk_shader_interface.cc.
|
static |
Definition at line 30 of file gpu_shader_interface.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::MutableSpan< T >::copy_from(), blender::MutableSpan< T >::data(), i, blender::MutableSpan< T >::is_empty(), blender::gpu::ShaderInput::name_hash, and blender::MutableSpan< T >::size().
Referenced by blender::gpu::ShaderInterface::sort_inputs().
|
inlinestatic |
Definition at line 139 of file gl_shader_interface.cc.
Referenced by blender::gpu::GLShaderInterface::GLShaderInterface().
| uint32_t blender::gpu::struct_size | ( | Span< shader::ShaderCreateInfo::PushConst > | push_constants | ) |
Definition at line 40 of file vk_push_constants.cc.
References align(), align_end_of_struct(), and reserve().
Referenced by blender::gpu::VKPushConstants::Layout::determine_storage_type().
| bool blender::gpu::supports_barycentric_whitelist | ( | id< MTLDevice > | device | ) |
Definition at line 291 of file mtl_backend.mm.
References BLI_assert, and length().
Referenced by blender::gpu::MTLBackend::metal_is_supported().
|
inline |
Definition at line 338 of file gl_texture.hh.
Referenced by blender::gpu::GLTexture::swizzle_set().
|
static |
Definition at line 1471 of file mtl_texture.mm.
Referenced by blender::gpu::MTLTexture::swizzle_set().
| blender::gpu::TEST | ( | std140 | , |
| _2fl | ) |
Definition at line 34 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| _3fl | ) |
Definition at line 45 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| _4fl | ) |
Definition at line 57 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| fl | ) |
Definition at line 24 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| fl2 | ) |
Definition at line 70 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| fl_fl2 | ) |
Definition at line 80 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| fl_vec2 | ) |
Definition at line 91 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), blender::gpu::shader::float2_t, and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std140 | , |
| gpu_shader_2D_widget_base | ) |
Definition at line 102 of file vk_memory_layout_test.cc.
References align_end_of_struct(), blender::gpu::shader::bool_t, def_attr(), EXPECT_EQ(), blender::gpu::shader::float3_t, blender::gpu::shader::float4_t, and blender::gpu::shader::float4x4_t.
| blender::gpu::TEST | ( | std430 | , |
| compositor_cryptomatte_matte_compute | ) |
Definition at line 137 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), blender::gpu::shader::float2_t, and blender::gpu::shader::float_t.
| blender::gpu::TEST | ( | std430 | , |
| overlay_grid | ) |
Definition at line 115 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), blender::gpu::shader::float3_t, and blender::gpu::shader::int_t.
| blender::gpu::TEST | ( | std430 | , |
| simple_lighting | ) |
Definition at line 126 of file vk_memory_layout_test.cc.
References align_end_of_struct(), def_attr(), EXPECT_EQ(), blender::gpu::shader::float3x3_t, and blender::gpu::shader::float4x4_t.
|
inline |
Definition at line 535 of file mtl_texture.hh.
References BLI_assert, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, and GPU_DATA_UINT_24_8.
Referenced by blender::gpu::MTLTexture::clear(), and blender::gpu::MTLTexture::update_sub().
|
inline |
Definition at line 509 of file mtl_texture.hh.
References BLI_assert, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, and GPU_DATA_UINT_24_8.
Referenced by blender::gpu::MTLTexture::clear(), and blender::gpu::MTLTexture::update_sub().
|
static |
Definition at line 16 of file vk_shader_interface.cc.
References BLI_assert_unreachable, IMAGE, blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE, SAMPLER, blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, blender::gpu::shader::ShaderCreateInfo::Resource::STORAGE_BUFFER, STORAGE_BUFFER, blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER, and UNIFORM_BUFFER.
Referenced by blender::gpu::VKShaderInterface::descriptor_set_location(), and blender::gpu::VKShaderInterface::init().
|
static |
Definition at line 117 of file vk_vertex_attribute_object.cc.
References blender::ceil_division(), and GPUVertAttr::comp_len.
|
static |
Definition at line 123 of file vk_vertex_attribute_object.cc.
References blender::gpu::shader::bool_t, blender::gpu::shader::char2_t, blender::gpu::shader::char3_t, blender::gpu::shader::char4_t, blender::gpu::shader::char_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_10_10_10_2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, blender::gpu::shader::short2_t, blender::gpu::shader::short3_t, blender::gpu::shader::short4_t, blender::gpu::shader::short_t, blender::gpu::shader::uchar2_t, blender::gpu::shader::uchar3_t, blender::gpu::shader::uchar4_t, blender::gpu::shader::uchar_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, blender::gpu::shader::uint_t, blender::gpu::shader::ushort2_t, blender::gpu::shader::ushort3_t, blender::gpu::shader::ushort4_t, and blender::gpu::shader::ushort_t.
|
inline |
Definition at line 482 of file gpu_texture_private.hh.
References BLI_assert_msg, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by GPU_texture_create_compressed_2d(), blender::gpu::GLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), and blender::gpu::VKTexture::update_sub().
|
inline |
Definition at line 244 of file GPU_format.hh.
References BLI_assert_unreachable, CASE, GPU_DATA_FORMAT_EXPAND, and Invalid.
Referenced by blender::gpu::MTLTexture::clear(), convert_buffer(), blender::gpu::FrameBuffer::get_bits_per_pixel(), GPU_texture_dataformat_size(), immEndVertex(), blender::gpu::GLTexture::read(), blender::gpu::MTLFrameBuffer::read(), blender::gpu::MTLTexture::read(), blender::gpu::VKTexture::read(), blender::gpu::VKTexture::read_sub(), blender::gpu::IndexBuf::size_get(), blender::gpu::tests::texture_create_upload_read(), to_bytesize(), to_bytesize(), blender::gpu::MTLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), and blender::gpu::VKTexture::update_sub().
|
inline |
Definition at line 33 of file gpu_vertex_format_private.hh.
References to_bytesize().
|
inline |
Definition at line 733 of file gpu_texture_private.hh.
References BLI_assert_unreachable, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, and GPU_DATA_UINT_24_8.
|
inline |
Definition at line 367 of file gpu_texture_private.hh.
References BLI_assert_unreachable, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
|
inline |
Definition at line 753 of file gpu_texture_private.hh.
References GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_R11F_G11F_B10F, GPU_RGB10_A2, GPU_RGB10_A2UI, to_bytesize(), and to_component_len().
|
inline |
Definition at line 29 of file GPU_index_buffer.hh.
References GPU_INDEX_U32.
|
inline |
Definition at line 635 of file gpu_texture_private.hh.
References BLI_assert_unreachable, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::MTLTexture::clear(), convert_buffer(), convert_per_component(), blender::gpu::FrameBuffer::get_bits_per_pixel(), GPU_texture_component_len(), blender::gpu::MTLTexture::read(), blender::gpu::tests::texture_create_upload_read(), blender::gpu::tests::texture_create_upload_read_with_bias(), to_bytesize(), blender::gpu::MTLTexture::update_sub(), and blender::gpu::MTLTexture::update_sub().
Definition at line 907 of file vk_shader.cc.
References BLI_assert_unreachable, blender::gpu::shader::bool_t, blender::gpu::shader::char2_t, blender::gpu::shader::char3_t, blender::gpu::shader::char4_t, blender::gpu::shader::char_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_10_10_10_2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, blender::gpu::shader::short2_t, blender::gpu::shader::short3_t, blender::gpu::shader::short4_t, blender::gpu::shader::short_t, blender::gpu::shader::uchar2_t, blender::gpu::shader::uchar3_t, blender::gpu::shader::uchar4_t, blender::gpu::shader::uchar_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, blender::gpu::shader::uint_t, blender::gpu::shader::ushort2_t, blender::gpu::shader::ushort3_t, blender::gpu::shader::ushort4_t, and blender::gpu::shader::ushort_t.
Referenced by blender::gpu::VKShader::fragment_interface_declare().
|
inline |
Definition at line 888 of file gpu_texture_private.hh.
References ATTR_FALLTHROUGH, BLI_assert_unreachable, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_INT, GPU_DATA_UINT, GPU_DATA_UINT_24_8, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
|
inlineconstexpr |
Definition at line 128 of file GPU_texture.hh.
Referenced by GPU_texture_create_compressed_2d().
|
inlineconstexpr |
Definition at line 109 of file GPU_vertex_format.hh.
|
inline |
Definition at line 499 of file gpu_texture_private.hh.
References BLI_assert_unreachable, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_FORMAT_COMPRESSED, GPU_FORMAT_DEPTH, GPU_FORMAT_DEPTH_STENCIL, GPU_FORMAT_FLOAT, GPU_FORMAT_INTEGER, GPU_FORMAT_NORMALIZED_INTEGER, GPU_FORMAT_SIGNED, GPU_FORMAT_SRGB, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::Texture::init_1D(), blender::gpu::Texture::init_2D(), blender::gpu::Texture::init_3D(), blender::gpu::Texture::init_buffer(), blender::gpu::Texture::init_cubemap(), and blender::gpu::Texture::init_view().
|
inline |
Definition at line 993 of file gpu_texture_private.hh.
References BLI_assert_msg, BLI_assert_unreachable, GPU_COLOR_BIT, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_BIT, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, and GPU_STENCIL_BIT.
|
inlinestatic |
Definition at line 146 of file gl_framebuffer.hh.
References GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_STENCIL_BIT, and mask().
|
inlinestatic |
Definition at line 120 of file gl_framebuffer.hh.
References ATTACHMENT, and BLI_assert.
Referenced by blender::gpu::GLVertBuf::bind(), blender::gpu::GLFrameBuffer::blit_to(), blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLUniformBuf::clear_to_zero(), blender::gpu::GLBatch::draw(), blender::gpu::GLBatch::draw_indirect(), blender::gpu::GLImmediate::end(), blender::gpu::GLQueryPool::init(), blender::gpu::GLStateManager::issue_barrier(), blender::gpu::GLBatch::multi_draw_indirect(), blender::gpu::GLFrameBuffer::read(), blender::gpu::GLTexture::read(), blender::gpu::GLTexture::samplers_init(), blender::gpu::GLFrameBuffer::subpass_transition_impl(), blender::gpu::GLVertArray::update_bindings(), blender::gpu::GLTexture::update_sub(), blender::gpu::GLTexture::update_sub(), and vbo_bind().
|
inlinestatic |
Definition at line 124 of file gl_state.hh.
References GPU_BARRIER_BUFFER_UPDATE, GPU_BARRIER_COMMAND, GPU_BARRIER_ELEMENT_ARRAY, GPU_BARRIER_FRAMEBUFFER, GPU_BARRIER_SHADER_IMAGE_ACCESS, GPU_BARRIER_SHADER_STORAGE, GPU_BARRIER_TEXTURE_FETCH, GPU_BARRIER_TEXTURE_UPDATE, GPU_BARRIER_UNIFORM, and GPU_BARRIER_VERTEX_ATTRIB_ARRAY.
|
inline |
Definition at line 361 of file gl_texture.hh.
References BLI_assert_msg, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, and GPU_DATA_UINT_24_8.
|
inlinestatic |
Definition at line 63 of file gl_index_buffer.hh.
References GPU_INDEX_U32.
|
inlinestatic |
Definition at line 19 of file gl_primitive.hh.
References BLI_assert, GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_LINE_STRIP_ADJ, GPU_PRIM_LINES, GPU_PRIM_LINES_ADJ, GPU_PRIM_NONE, GPU_PRIM_POINTS, GPU_PRIM_TRI_FAN, GPU_PRIM_TRI_STRIP, GPU_PRIM_TRIS, and GPU_PRIM_TRIS_ADJ.
|
inlinestatic |
Definition at line 44 of file gl_query.hh.
References BLI_assert, and GPU_QUERY_OCCLUSION.
|
inlinestatic |
A function that maps GPUSamplerExtendMode values to their OpenGL enum counterparts.
Definition at line 475 of file gl_texture.cc.
References BLI_assert_unreachable, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT, and GPU_SAMPLER_EXTEND_MODE_REPEAT.
|
inlinestatic |
Definition at line 58 of file gl_vertex_buffer.hh.
References BLI_assert, GPU_USAGE_DEVICE_ONLY, GPU_USAGE_DYNAMIC, GPU_USAGE_STATIC, and GPU_USAGE_STREAM.
|
inlinestatic |
Definition at line 74 of file gl_vertex_buffer.hh.
References BLI_assert, GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_U16, GPU_COMP_U32, and GPU_COMP_U8.
|
inline |
Definition at line 386 of file gl_texture.hh.
References BLI_assert_msg, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::GLUniformBuf::clear_to_zero(), blender::gpu::GLTexture::read(), blender::gpu::GLTexture::update_sub(), and blender::gpu::GLTexture::update_sub().
|
inline |
Definition at line 146 of file gl_texture.hh.
References BLI_assert_msg, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::GLUniformBuf::clear_to_zero(), blender::gpu::GLStateManager::image_bind(), blender::gpu::GLTexture::init_internal(), blender::gpu::GLTexture::init_internal(), and blender::gpu::GLTexture::init_internal().
|
inline |
Definition at line 314 of file gl_texture.hh.
References BLI_assert, GPU_TEXTURE_1D, GPU_TEXTURE_1D_ARRAY, GPU_TEXTURE_2D, GPU_TEXTURE_2D_ARRAY, GPU_TEXTURE_3D, GPU_TEXTURE_BUFFER, GPU_TEXTURE_CUBE, and GPU_TEXTURE_CUBE_ARRAY.
|
inline |
Definition at line 289 of file gl_texture.hh.
References BLI_assert, GPU_TEXTURE_1D, GPU_TEXTURE_1D_ARRAY, GPU_TEXTURE_2D, GPU_TEXTURE_2D_ARRAY, GPU_TEXTURE_3D, GPU_TEXTURE_BUFFER, GPU_TEXTURE_CUBE, and GPU_TEXTURE_CUBE_ARRAY.
Referenced by blender::gpu::GLTexture::init_internal(), blender::gpu::GLTexture::init_internal(), and blender::gpu::GLTexture::init_internal().
| eGPUTextureFormat blender::gpu::to_gpu_format | ( | const VkFormat | format | ) |
Definition at line 118 of file vk_common.cc.
References BLI_assert_unreachable, GPU_RGBA32F, and GPU_RGBA8.
Referenced by blender::gpu::VKContext::sync_backbuffer().
|
inline |
Definition at line 561 of file mtl_texture.hh.
References BLI_assert_unreachable, GPU_TEXTURE_1D, GPU_TEXTURE_1D_ARRAY, GPU_TEXTURE_2D, GPU_TEXTURE_2D_ARRAY, GPU_TEXTURE_3D, GPU_TEXTURE_BUFFER, GPU_TEXTURE_CUBE, and GPU_TEXTURE_CUBE_ARRAY.
|
inline |
Definition at line 396 of file mtl_shader.hh.
References BLI_assert_msg, BLI_assert_unreachable, FORMAT_PER_COMP, FORMAT_PER_COMP_INT, FORMAT_PER_COMP_SMALL_INT, GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_MAX, GPU_COMP_U16, GPU_COMP_U32, GPU_COMP_U8, GPU_FETCH_FLOAT, GPU_FETCH_INT, and GPU_FETCH_INT_TO_FLOAT_UNIT.
Referenced by mtl_convert_vertex_format_ex().
|
inlinestatic |
Definition at line 46 of file mtl_query.mm.
References BLI_assert, and GPU_QUERY_OCCLUSION.
|
inlinestatic |
A function that maps GPUSamplerExtendMode values to their Metal enum counterparts.
Definition at line 2460 of file mtl_context.mm.
References BLI_assert_unreachable, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT, and GPU_SAMPLER_EXTEND_MODE_REPEAT.
Referenced by blender::gpu::MSLGeneratorInterface::bake_shader_interface(), blender::gpu::MTLQueryPool::init(), and blender::gpu::MTLContext::sampler_state_cache_init().
|
static |
Definition at line 60 of file mtl_shader_generator.mm.
References BLI_assert_msg, blender::gpu::shader::bool_t, blender::gpu::shader::char2_t, blender::gpu::shader::char3_t, blender::gpu::shader::char4_t, blender::gpu::shader::char_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_10_10_10_2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, MTL_DATATYPE_BOOL, MTL_DATATYPE_CHAR, MTL_DATATYPE_CHAR2, MTL_DATATYPE_CHAR3, MTL_DATATYPE_CHAR4, MTL_DATATYPE_FLOAT, MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT3x3, MTL_DATATYPE_FLOAT4, MTL_DATATYPE_FLOAT4x4, MTL_DATATYPE_INT, MTL_DATATYPE_INT1010102_NORM, MTL_DATATYPE_INT2, MTL_DATATYPE_INT3, MTL_DATATYPE_INT4, MTL_DATATYPE_SHORT, MTL_DATATYPE_SHORT2, MTL_DATATYPE_SHORT3, MTL_DATATYPE_SHORT4, MTL_DATATYPE_UCHAR, MTL_DATATYPE_UCHAR2, MTL_DATATYPE_UCHAR3, MTL_DATATYPE_UCHAR4, MTL_DATATYPE_UINT, MTL_DATATYPE_UINT2, MTL_DATATYPE_UINT3, MTL_DATATYPE_UINT4, MTL_DATATYPE_USHORT, MTL_DATATYPE_USHORT2, MTL_DATATYPE_USHORT3, MTL_DATATYPE_USHORT4, blender::gpu::shader::short2_t, blender::gpu::shader::short3_t, blender::gpu::shader::short4_t, blender::gpu::shader::short_t, blender::gpu::shader::uchar2_t, blender::gpu::shader::uchar3_t, blender::gpu::shader::uchar4_t, blender::gpu::shader::uchar_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, blender::gpu::shader::uint_t, blender::gpu::shader::ushort2_t, blender::gpu::shader::ushort3_t, blender::gpu::shader::ushort4_t, and blender::gpu::shader::ushort_t.
|
static |
Definition at line 17 of file vk_image_view.cc.
Referenced by blender::gpu::VKImageView::VKImageView().
|
static |
Definition at line 146 of file vk_shader_compiler.cc.
References BLI_assert_msg.
Referenced by compile_ex().
|
static |
Definition at line 193 of file vk_shader.cc.
References blender::gpu::shader::ANY, blender::gpu::shader::GREATER, and blender::gpu::shader::LESS.
|
static |
Definition at line 89 of file vk_shader.cc.
References GPU_R11F_G11F_B10F, GPU_R16, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGBA16, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8I, and GPU_RGBA8UI.
|
inline |
Definition at line 658 of file mtl_shader_generator.hh.
References BLI_assert, blender::gpu::shader::FLAT, interp(), blender::gpu::shader::NO_PERSPECTIVE, and blender::gpu::shader::SMOOTH.
|
inline |
Definition at line 639 of file mtl_shader_generator.hh.
References BLI_assert, blender::gpu::shader::LINES, blender::gpu::shader::LINES_ADJACENCY, blender::gpu::shader::POINTS, blender::gpu::shader::TRIANGLES, and blender::gpu::shader::TRIANGLES_ADJACENCY.
|
inline |
Definition at line 624 of file mtl_shader_generator.hh.
References BLI_assert, blender::gpu::shader::LINE_STRIP, blender::gpu::shader::POINTS, and blender::gpu::shader::TRIANGLE_STRIP.
|
inline |
Definition at line 687 of file mtl_shader_generator.hh.
References BLI_assert, blender::gpu::shader::bool_t, blender::gpu::shader::char2_t, blender::gpu::shader::char3_t, blender::gpu::shader::char4_t, blender::gpu::shader::char_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_10_10_10_2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, blender::gpu::shader::short2_t, blender::gpu::shader::short3_t, blender::gpu::shader::short4_t, blender::gpu::shader::short_t, blender::gpu::shader::uchar2_t, blender::gpu::shader::uchar3_t, blender::gpu::shader::uchar4_t, blender::gpu::shader::uchar_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, blender::gpu::shader::uint_t, blender::gpu::shader::ushort2_t, blender::gpu::shader::ushort3_t, blender::gpu::shader::ushort4_t, and blender::gpu::shader::ushort_t.
| const char * blender::gpu::to_string | ( | const VkAttachmentLoadOp | vk_attachment_load_op | ) |
Definition at line 63 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| const char * blender::gpu::to_string | ( | const VkAttachmentStoreOp | vk_attachment_store_op | ) |
Definition at line 81 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkBufferCopy & | vk_buffer_copy, |
| int | indentation_level ) |
Definition at line 593 of file vk_to_string.cc.
References UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkBufferImageCopy & | vk_buffer_image_copy, |
| int | indentation_level ) |
Definition at line 604 of file vk_to_string.cc.
References to_string().
| std::string blender::gpu::to_string | ( | const VkBufferMemoryBarrier & | vk_buffer_memory_barrier, |
| int | indentation_level ) |
Definition at line 626 of file vk_to_string.cc.
References to_string(), to_string_vk_access_flags(), and UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkClearAttachment & | vk_clear_attachment, |
| int | indentation_level ) |
Definition at line 639 of file vk_to_string.cc.
References to_string_vk_image_aspect_flags(), and UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkClearDepthStencilValue & | vk_clear_depth_stencil_value, |
| int | indentation_level ) |
Definition at line 649 of file vk_to_string.cc.
References UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkClearRect & | vk_clear_rect, |
| int | indentation_level ) |
Definition at line 660 of file vk_to_string.cc.
References to_string().
| std::string blender::gpu::to_string | ( | const VkExtent2D & | vk_extent2_d, |
| int | indentation_level ) |
Definition at line 673 of file vk_to_string.cc.
References UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkExtent3D & | vk_extent3_d, |
| int | indentation_level ) |
Definition at line 683 of file vk_to_string.cc.
References UNUSED_VARS.
| const char * blender::gpu::to_string | ( | const VkFilter | vk_filter | ) |
Definition at line 100 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkImageBlit & | vk_image_blit, |
| int | indentation_level ) |
Definition at line 694 of file vk_to_string.cc.
References to_string().
| std::string blender::gpu::to_string | ( | const VkImageCopy & | vk_image_copy, |
| int | indentation_level ) |
Definition at line 709 of file vk_to_string.cc.
References to_string().
| const char * blender::gpu::to_string | ( | const VkImageLayout | vk_image_layout | ) |
Definition at line 115 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkImageMemoryBarrier & | vk_image_memory_barrier, |
| int | indentation_level ) |
Definition at line 736 of file vk_to_string.cc.
References to_string(), and to_string_vk_access_flags().
| std::string blender::gpu::to_string | ( | const VkImageSubresourceLayers & | vk_image_subresource_layers, |
| int | indentation_level ) |
Definition at line 752 of file vk_to_string.cc.
References to_string_vk_image_aspect_flags(), and UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkImageSubresourceRange & | vk_image_subresource_range, |
| int | indentation_level ) |
Definition at line 765 of file vk_to_string.cc.
References to_string_vk_image_aspect_flags(), and UNUSED_VARS.
| const char * blender::gpu::to_string | ( | const VkIndexType | vk_index_type | ) |
Definition at line 178 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkMemoryBarrier & | vk_memory_barrier, |
| int | indentation_level ) |
Definition at line 779 of file vk_to_string.cc.
References to_string_vk_access_flags(), and UNUSED_VARS.
| const char * blender::gpu::to_string | ( | const VkObjectType | vk_object_type | ) |
Definition at line 193 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkOffset2D & | vk_offset2_d, |
| int | indentation_level ) |
Definition at line 789 of file vk_to_string.cc.
References UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkOffset3D & | vk_offset3_d, |
| int | indentation_level ) |
Definition at line 799 of file vk_to_string.cc.
References UNUSED_VARS.
| const char * blender::gpu::to_string | ( | const VkPipelineBindPoint | vk_pipeline_bind_point | ) |
Definition at line 291 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| std::string blender::gpu::to_string | ( | const VkRect2D & | vk_rect2_d, |
| int | indentation_level ) |
Definition at line 810 of file vk_to_string.cc.
References to_string().
| std::string blender::gpu::to_string | ( | const VkRenderingAttachmentInfo & | vk_rendering_attachment_info, |
| int | indentation_level ) |
Definition at line 841 of file vk_to_string.cc.
References to_string(), and UNUSED_VARS.
| std::string blender::gpu::to_string | ( | const VkRenderingInfo & | vk_rendering_info, |
| int | indentation_level ) |
Definition at line 857 of file vk_to_string.cc.
References to_string(), and to_string_vk_rendering_flags().
| std::string blender::gpu::to_string | ( | const VkRenderPassBeginInfo & | vk_render_pass_begin_info, |
| int | indentation_level ) |
Definition at line 825 of file vk_to_string.cc.
References to_string().
| const char * blender::gpu::to_string | ( | const VkResolveModeFlagBits | vk_resolve_mode_flag_bits | ) |
Definition at line 306 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| const char * blender::gpu::to_string | ( | const VkSubpassContents | vk_subpass_contents | ) |
Definition at line 330 of file vk_to_string.cc.
References STRINGIFY, and STRINGIFY_ARG.
| const char * blender::gpu::to_string | ( | ShaderStage | stage | ) |
Definition at line 52 of file mtl_shader.mm.
References ANY, COMPUTE, FRAGMENT, and VERTEX.
Referenced by blender::gpu::render_graph::CommandBufferLog::begin_render_pass(), blender::gpu::render_graph::CommandBufferLog::begin_rendering(), blender::gpu::render_graph::CommandBufferLog::bind_descriptor_sets(), blender::gpu::render_graph::CommandBufferLog::bind_pipeline(), blender::gpu::render_graph::CommandBufferLog::blit_image(), blender::gpu::render_graph::CommandBufferLog::clear_attachments(), blender::gpu::render_graph::CommandBufferLog::clear_color_image(), blender::gpu::render_graph::CommandBufferLog::copy_buffer(), blender::gpu::render_graph::CommandBufferLog::copy_buffer_to_image(), blender::gpu::render_graph::CommandBufferLog::copy_image(), blender::gpu::render_graph::CommandBufferLog::copy_image_to_buffer(), blender::gpu::render_graph::VKRenderGraphLink::debug_print(), blender::gpu::render_graph::CommandBufferLog::dispatch_indirect(), blender::gpu::render_graph::CommandBufferLog::fill_buffer(), blender::gpu::MTLShader::finalize(), blender::gpu::GLShader::fragment_interface_declare(), blender::gpu::MTLShader::fragment_interface_declare(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::MSLGeneratorInterface::generate_msl_fragment_struct(), blender::gpu::MSLGeneratorInterface::generate_msl_uniform_structs(), blender::gpu::GLShader::geometry_layout_declare(), blender::gpu::render_graph::CommandBufferLog::pipeline_barrier(), print_interface(), print_interface_as_attributes(), print_interface_as_struct(), print_resource(), print_resource(), blender::gpu::GLShader::resources_declare(), blender::gpu::VKShader::resources_declare(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), blender::gpu::render_graph::CommandBufferLog::update_buffer(), blender::gpu::GLShader::vertex_interface_declare(), blender::gpu::MTLShader::vertex_interface_declare(), and blender::gpu::VKShader::vertex_interface_declare().
| std::string blender::gpu::to_string | ( | VkBuffer | vk_handle | ) |
Definition at line 23 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkDescriptorSet | vk_handle | ) |
Definition at line 58 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkFramebuffer | vk_handle | ) |
Definition at line 43 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkImage | vk_handle | ) |
Definition at line 28 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkImageView | vk_handle | ) |
Definition at line 33 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkPipeline | vk_handle | ) |
Definition at line 53 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkPipelineLayout | vk_handle | ) |
Definition at line 48 of file vk_to_string.cc.
References to_string_handle().
| std::string blender::gpu::to_string | ( | VkRenderPass | vk_handle | ) |
Definition at line 38 of file vk_to_string.cc.
References to_string_handle().
|
static |
Portable printing of vulkan handles across platforms.
Definition at line 16 of file vk_to_string.cc.
Referenced by to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), to_string(), and to_string().
|
inline |
Definition at line 673 of file mtl_shader_generator.hh.
References blender::gpu::shader::FLAT, interp(), blender::gpu::shader::NO_PERSPECTIVE, and blender::gpu::shader::SMOOTH.
| std::string blender::gpu::to_string_vk_access_flags | ( | const VkAccessFlags | vk_access_flags | ) |
Definition at line 345 of file vk_to_string.cc.
References result, and STRINGIFY.
Referenced by blender::gpu::render_graph::VKRenderGraphLink::debug_print(), to_string(), to_string(), and to_string().
| std::string blender::gpu::to_string_vk_dependency_flags | ( | const VkDependencyFlags | vk_dependency_flags | ) |
Definition at line 408 of file vk_to_string.cc.
| std::string blender::gpu::to_string_vk_image_aspect_flags | ( | const VkImageAspectFlags | vk_image_aspect_flags | ) |
Definition at line 430 of file vk_to_string.cc.
References result, and STRINGIFY.
Referenced by blender::gpu::render_graph::VKRenderGraphLink::debug_print(), to_string(), to_string(), and to_string().
| std::string blender::gpu::to_string_vk_pipeline_stage_flags | ( | const VkPipelineStageFlags | vk_pipeline_stage_flags | ) |
Definition at line 464 of file vk_to_string.cc.
References result, and STRINGIFY.
Referenced by blender::gpu::render_graph::CommandBufferLog::pipeline_barrier().
| std::string blender::gpu::to_string_vk_rendering_flags | ( | const VkRenderingFlags | vk_rendering_flags | ) |
Definition at line 527 of file vk_to_string.cc.
References result, and STRINGIFY.
Referenced by to_string().
| std::string blender::gpu::to_string_vk_shader_stage_flags | ( | const VkShaderStageFlags | vk_shader_stage_flags | ) |
Definition at line 557 of file vk_to_string.cc.
|
inlinestatic |
Definition at line 1083 of file gpu_texture_private.hh.
References BLI_assert_msg, GPU_COMP_F32, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_U16, GPU_COMP_U32, GPU_COMP_U8, GPU_DEPTH_COMPONENT24, GPU_FETCH_FLOAT, GPU_FETCH_INT, GPU_FETCH_INT_TO_FLOAT_UNIT, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8I, GPU_R8UI, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8I, GPU_RG8UI, GPU_RGBA16, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8I, and GPU_RGBA8UI.
|
inlineconstexpr |
Definition at line 201 of file GPU_texture.hh.
Referenced by GPU_texture_create_from_vertbuf(), and blender::gpu::VKVertexBuffer::to_vk_format().
|
inlineconstexpr |
Definition at line 266 of file GPU_texture.hh.
|
static |
Definition at line 298 of file vk_framebuffer.cc.
References BLI_assert_unreachable, GPU_LOADACTION_CLEAR, GPU_LOADACTION_DONT_CARE, and GPU_LOADACTION_LOAD.
Referenced by set_load_store().
|
static |
Definition at line 312 of file vk_framebuffer.cc.
References BLI_assert_unreachable, GPU_STOREACTION_DONT_CARE, and GPU_STOREACTION_STORE.
Referenced by set_load_store().
| VkClearColorValue blender::gpu::to_vk_clear_color_value | ( | const eGPUDataFormat | format, |
| const void * | data ) |
Definition at line 724 of file vk_common.cc.
References BLI_assert_unreachable, copy_color(), data, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, GPU_DATA_UINT_24_8, and result.
Referenced by blender::gpu::VKTexture::clear().
| VkComponentSwizzle blender::gpu::to_vk_component_swizzle | ( | const char | swizzle | ) |
Definition at line 693 of file vk_common.cc.
References BLI_assert_unreachable.
Referenced by blender::gpu::VKImageView::VKImageView().
| VkCullModeFlags blender::gpu::to_vk_cull_mode_flags | ( | const eGPUFaceCullTest | cull_test | ) |
Definition at line 805 of file vk_common.cc.
References BLI_assert_unreachable, GPU_CULL_BACK, GPU_CULL_FRONT, and GPU_CULL_NONE.
Referenced by blender::gpu::VKPipelinePool::get_or_create_graphics_pipeline().
| VkDescriptorType blender::gpu::to_vk_descriptor_type | ( | const shader::ShaderCreateInfo::Resource & | resource | ) |
Definition at line 930 of file vk_common.cc.
References BLI_assert_unreachable, blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE, resource, blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, blender::gpu::shader::ShaderCreateInfo::Resource::STORAGE_BUFFER, to_vk_descriptor_type_image(), to_vk_descriptor_type_sampler(), and blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER.
|
static |
Definition at line 836 of file vk_common.cc.
References BLI_assert_msg.
Referenced by to_vk_descriptor_type().
|
static |
Definition at line 880 of file vk_common.cc.
References blender::gpu::shader::undefined.
Referenced by to_vk_descriptor_type().
| VkFormat blender::gpu::to_vk_format | ( | const eGPUTextureFormat | format | ) |
Definition at line 131 of file vk_common.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::rendering_ensure_render_pass(), blender::gpu::VKVertexBuffer::to_vk_format(), and blender::gpu::VKImageView::VKImageView().
| VkFormat blender::gpu::to_vk_format | ( | const GPUVertCompType | type, |
| const uint32_t | size, | ||
| GPUVertFetchMode | fetch_mode ) |
Definition at line 516 of file vk_common.cc.
References BLI_assert_unreachable, GPU_FETCH_FLOAT, GPU_FETCH_INT, GPU_FETCH_INT_TO_FLOAT_UNIT, size(), to_vk_format_float(), to_vk_format_int(), and to_vk_format_norm().
| VkFormat blender::gpu::to_vk_format | ( | const shader::Type | type | ) |
Definition at line 535 of file vk_common.cc.
References BLI_assert_unreachable, blender::gpu::shader::bool_t, blender::gpu::shader::char2_t, blender::gpu::shader::char3_t, blender::gpu::shader::char4_t, blender::gpu::shader::char_t, blender::gpu::shader::float2_t, blender::gpu::shader::float3_10_10_10_2_t, blender::gpu::shader::float3_t, blender::gpu::shader::float3x3_t, blender::gpu::shader::float4_t, blender::gpu::shader::float4x4_t, blender::gpu::shader::float_t, blender::gpu::shader::int2_t, blender::gpu::shader::int3_t, blender::gpu::shader::int4_t, blender::gpu::shader::int_t, blender::gpu::shader::short2_t, blender::gpu::shader::short3_t, blender::gpu::shader::short4_t, blender::gpu::shader::short_t, blender::gpu::shader::uchar2_t, blender::gpu::shader::uchar3_t, blender::gpu::shader::uchar4_t, blender::gpu::shader::uchar_t, blender::gpu::shader::uint2_t, blender::gpu::shader::uint3_t, blender::gpu::shader::uint4_t, blender::gpu::shader::uint_t, blender::gpu::shader::ushort2_t, blender::gpu::shader::ushort3_t, blender::gpu::shader::ushort4_t, and blender::gpu::shader::ushort_t.
|
static |
Definition at line 362 of file vk_common.cc.
References BLI_assert_unreachable, GPU_COMP_F32, and size().
Referenced by to_vk_format().
|
static |
Definition at line 389 of file vk_common.cc.
References BLI_assert, BLI_assert_unreachable, GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_U16, GPU_COMP_U32, GPU_COMP_U8, and size().
Referenced by to_vk_format().
|
static |
Definition at line 277 of file vk_common.cc.
References BLI_assert, BLI_assert_unreachable, GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_U16, GPU_COMP_U32, GPU_COMP_U8, and size().
Referenced by to_vk_format().
| VkImageAspectFlags blender::gpu::to_vk_image_aspect_flag_bits | ( | const eGPUFrameBufferBits | buffers | ) |
Definition at line 103 of file vk_common.cc.
References buffers, GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_STENCIL_BIT, and result.
| VkImageAspectFlags blender::gpu::to_vk_image_aspect_flag_bits | ( | const eGPUTextureFormat | format | ) |
Definition at line 14 of file vk_common.cc.
References BLI_assert_unreachable, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::VKTexture::clear(), blender::gpu::VKTexture::clear_depth_stencil(), blender::gpu::VKTexture::copy_to(), blender::gpu::VKTexture::copy_to(), blender::gpu::VKTexture::generate_mipmap(), blender::gpu::VKTexture::read_sub(), blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::rendering_ensure_render_pass(), blender::gpu::VKTexture::update_sub(), and blender::gpu::VKImageView::VKImageView().
|
static |
Definition at line 33 of file vk_texture.cc.
Referenced by blender::gpu::VKTexture::read_sub(), and blender::gpu::VKTexture::update_sub().
|
static |
Definition at line 541 of file vk_texture.cc.
References ELEM, GPU_FORMAT_SRGB, GPU_TEXTURE_CUBE, GPU_TEXTURE_CUBE_ARRAY, GPU_TEXTURE_USAGE_ATTACHMENT, and result.
| VkImageType blender::gpu::to_vk_image_type | ( | const eGPUTextureType | type | ) |
Definition at line 601 of file vk_common.cc.
References BLI_assert_unreachable, GPU_TEXTURE_1D, GPU_TEXTURE_1D_ARRAY, GPU_TEXTURE_2D, GPU_TEXTURE_2D_ARRAY, GPU_TEXTURE_3D, GPU_TEXTURE_ARRAY, GPU_TEXTURE_BUFFER, GPU_TEXTURE_CUBE, and GPU_TEXTURE_CUBE_ARRAY.
Referenced by blender::gpu::VKTexture::read().
|
static |
Definition at line 492 of file vk_texture.cc.
References blender::gpu::VKBackend::device, blender::gpu::VKExtensions::dynamic_rendering, blender::gpu::VKExtensions::dynamic_rendering_local_read, blender::gpu::VKDevice::extensions_get(), blender::gpu::VKBackend::get(), GPU_FORMAT_COMPRESSED, GPU_FORMAT_DEPTH, GPU_FORMAT_SRGB, GPU_FORMAT_STENCIL, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_HOST_READ, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, and result.
| VkImageViewType blender::gpu::to_vk_image_view_type | ( | const eGPUTextureType | type, |
| const eImageViewUsage | view_type, | ||
| VKImageViewArrayed | arrayed ) |
Definition at line 630 of file vk_common.cc.
References ARRAYED, Attachment, GPU_TEXTURE_1D, GPU_TEXTURE_1D_ARRAY, GPU_TEXTURE_2D, GPU_TEXTURE_2D_ARRAY, GPU_TEXTURE_3D, GPU_TEXTURE_ARRAY, GPU_TEXTURE_BUFFER, GPU_TEXTURE_CUBE, GPU_TEXTURE_CUBE_ARRAY, NOT_ARRAYED, and result.
Referenced by blender::gpu::VKImageView::VKImageView().
| VkIndexType blender::gpu::to_vk_index_type | ( | const GPUIndexBufType | index_type | ) |
Definition at line 759 of file vk_common.cc.
References BLI_assert_unreachable, GPU_INDEX_U16, and GPU_INDEX_U32.
Referenced by blender::gpu::VKIndexBuffer::vk_index_type().
Definition at line 80 of file vk_common.hh.
References BLI_assert_unreachable, IMAGE, SAMPLER, T, and VK_EQ_TYPEID.
Referenced by blender::gpu::debug::object_label().
| VkPrimitiveTopology blender::gpu::to_vk_primitive_topology | ( | const GPUPrimType | prim_type | ) |
Definition at line 773 of file vk_common.cc.
References BLI_assert_unreachable, GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_LINE_STRIP_ADJ, GPU_PRIM_LINES, GPU_PRIM_LINES_ADJ, GPU_PRIM_NONE, GPU_PRIM_POINTS, GPU_PRIM_TRI_FAN, GPU_PRIM_TRI_STRIP, GPU_PRIM_TRIS, and GPU_PRIM_TRIS_ADJ.
Referenced by blender::gpu::VKShader::ensure_and_get_graphics_pipeline().
| VkQueryType blender::gpu::to_vk_query_type | ( | const GPUQueryType | query_type | ) |
Definition at line 591 of file vk_common.cc.
References BLI_assert_unreachable, and GPU_QUERY_OCCLUSION.
Referenced by blender::gpu::VKQueryPool::init().
| VkSamplerAddressMode blender::gpu::to_vk_sampler_address_mode | ( | const GPUSamplerExtendMode | extend_mode | ) |
Definition at line 819 of file vk_common.cc.
References BLI_assert_unreachable, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT, and GPU_SAMPLER_EXTEND_MODE_REPEAT.
Referenced by blender::gpu::VKSampler::create().
|
static |
Definition at line 91 of file vk_data_conversion.cc.
References FLOAT3_TO_FLOAT4, FLOAT3_TO_HALF4, FLOAT_TO_B10F_G11F_R11F, FLOAT_TO_DEPTH_COMPONENT24, FLOAT_TO_HALF, FLOAT_TO_SNORM16, FLOAT_TO_SNORM8, FLOAT_TO_SRGBA8, FLOAT_TO_UNORM16, FLOAT_TO_UNORM8, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, PASS_THROUGH, PASS_THROUGH_D32F_S8, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 367 of file vk_data_conversion.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 206 of file vk_data_conversion.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, I32_TO_I16, I32_TO_I8, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 605 of file vk_data_conversion.cc.
References ELEM, GPU_RGB10_A2, GPU_RGB10_A2UI, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 597 of file vk_data_conversion.cc.
References GPU_R11F_G11F_B10F, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 442 of file vk_data_conversion.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, PASS_THROUGH, UI8_TO_HALF, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 285 of file vk_data_conversion.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, PASS_THROUGH, UI32_TO_UI16, UI32_TO_UI8, UINT_TO_DEPTH_COMPONENT24, UNORM32_TO_FLOAT, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 519 of file vk_data_conversion.cc.
References GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, GPU_SRGB8_A8_DXT5, UINT_TO_DEPTH24_STENCIL8, UINT_TO_DEPTH32F_STENCIL8, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 701 of file vk_data_conversion.cc.
Referenced by convert().
|
inline |
Definition at line 32 of file vk_batch.hh.
References batch.
|
inlinestatic |
Definition at line 170 of file gpu_context_private.hh.
|
inlinestatic |
Definition at line 188 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 282 of file gpu_framebuffer_private.hh.
|
inlinestatic |
Definition at line 360 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 140 of file gpu_shader_private.hh.
|
inlinestatic |
Definition at line 61 of file gpu_storage_buffer_private.hh.
|
inlinestatic |
Definition at line 331 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 64 of file gpu_uniform_buffer_private.hh.
|
inlinestatic |
Definition at line 169 of file vk_framebuffer.hh.
|
inlinestatic |
Definition at line 166 of file gpu_context_private.hh.
Referenced by blender::gpu::VKContext::active_framebuffer_get(), blender::gpu::GLImmediate::begin(), blender::gpu::MTLVertBuf::bind_as_texture(), blender::gpu::VKFrameBuffer::blit_to(), blender::gpu::MTLTexture::clear(), blender::gpu::VKFrameBuffer::clear(), blender::gpu::VKBackend::compute_dispatch_indirect(), blender::gpu::VKStorageBuffer::copy_sub(), blender::gpu::VKTexture::copy_to(), blender::gpu::GLBatch::draw_indirect(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), blender::gpu::VKImmediate::end(), blender::gpu::TexturePool::get(), GPU_batch_draw(), GPU_batch_draw_instance_range(), GPU_batch_draw_range(), GPU_context_active_set(), GPU_context_begin_frame(), GPU_context_discard(), GPU_context_end_frame(), GPU_fence_free(), GPU_fence_signal(), GPU_fence_wait(), GPU_framebuffer_bind(), GPU_framebuffer_bind_loadstore(), GPU_framebuffer_bind_no_srgb(), GPU_framebuffer_blit(), GPU_framebuffer_check_valid(), GPU_framebuffer_clear(), GPU_framebuffer_config_array(), GPU_framebuffer_default_size(), GPU_framebuffer_free(), GPU_framebuffer_get_name(), GPU_framebuffer_multi_clear(), GPU_framebuffer_multi_viewports_set(), GPU_framebuffer_py_reference_get(), GPU_framebuffer_py_reference_set(), GPU_framebuffer_read_color(), GPU_framebuffer_read_depth(), GPU_framebuffer_recursive_downsample(), GPU_framebuffer_subpass_transition_array(), gpu_framebuffer_texture_attach_ex(), GPU_framebuffer_texture_detach(), GPU_framebuffer_viewport_get(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_offscreen_bind(), GPU_offscreen_draw_to_screen(), GPU_pixel_buffer_free(), GPU_pixel_buffer_get_native_handle(), GPU_pixel_buffer_map(), GPU_pixel_buffer_size(), GPU_pixel_buffer_unmap(), GPU_shader_bind(), GPU_shader_free(), GPU_shader_get_builtin_shader_with_config(), GPU_shader_get_default_constant_state(), GPU_shader_get_name(), GPU_shader_set_parent(), GPU_shader_uniform_float_ex(), GPU_shader_uniform_int_ex(), GPU_shader_warm_cache(), GPU_storagebuf_bind(), GPU_storagebuf_clear(), GPU_storagebuf_copy_sub_from_vertbuf(), GPU_storagebuf_free(), GPU_storagebuf_read(), GPU_storagebuf_sync_as_indirect_buffer(), GPU_storagebuf_sync_to_host(), GPU_storagebuf_unbind(), GPU_storagebuf_update(), GPU_texture_anisotropic_filter(), GPU_texture_bind(), GPU_texture_bind_ex(), GPU_texture_clear(), GPU_texture_compare_mode(), GPU_texture_copy(), GPU_texture_create_view(), GPU_texture_depth(), GPU_texture_dimensions(), GPU_texture_extend_mode(), GPU_texture_extend_mode_x(), GPU_texture_extend_mode_y(), GPU_texture_filter_mode(), GPU_texture_format(), GPU_texture_free(), GPU_texture_get_mipmap_size(), GPU_texture_has_depth_format(), GPU_texture_has_float_format(), GPU_texture_has_integer_format(), GPU_texture_has_normalized_format(), GPU_texture_has_signed_format(), GPU_texture_has_stencil_format(), GPU_texture_height(), GPU_texture_image_bind(), GPU_texture_image_unbind(), GPU_texture_is_array(), GPU_texture_is_cube(), GPU_texture_layer_count(), GPU_texture_mip_count(), GPU_texture_mipmap_mode(), GPU_texture_opengl_bindcode(), GPU_texture_original_height(), GPU_texture_original_size_set(), GPU_texture_original_width(), GPU_texture_py_reference_get(), GPU_texture_py_reference_set(), GPU_texture_read(), GPU_texture_ref(), GPU_texture_swizzle_set(), GPU_texture_unbind(), GPU_texture_update(), GPU_texture_update_mipmap(), GPU_texture_update_mipmap_chain(), GPU_texture_update_sub(), GPU_texture_update_sub_from_pixel_buffer(), GPU_texture_width(), GPU_uniformbuf_bind(), GPU_uniformbuf_bind_as_ssbo(), GPU_uniformbuf_clear_to_zero(), GPU_uniformbuf_free(), GPU_uniformbuf_unbind(), GPU_uniformbuf_update(), blender::gpu::VKStateManager::image_bind(), blender::gpu::VKStateManager::image_unbind(), immEnd(), blender::gpu::VKBatch::index_buffer_get(), blender::gpu::GLTexture::init_internal(), blender::gpu::MTLTexture::init_internal(), blender::gpu::VKTexture::init_internal(), blender::gpu::VKTexture::init_internal(), blender::gpu::Texture::init_view(), blender::gpu::VKBatch::instance_buffer_get(), blender::gpu::GLBatch::multi_draw_indirect(), blender::gpu::VKBatch::multi_draw_indirect(), blender::gpu::VKFrameBuffer::read(), blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::rendering_ensure_render_pass(), blender::gpu::GLShaderCompiler::specialize_shader(), blender::gpu::MTLShaderCompiler::specialize_shader(), blender::gpu::GLFrameBuffer::subpass_transition_impl(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), blender::gpu::MTLFrameBuffer::update_attachments(), blender::gpu::GLVertArray::update_bindings(), blender::gpu::VKVertexAttributeObject::update_bindings(), blender::gpu::VKVertexAttributeObject::update_bindings(), blender::gpu::VKDescriptorSetTracker::update_descriptor_set(), blender::gpu::VKContext::update_pipeline_data(), blender::gpu::VKContext::update_pipeline_data(), blender::gpu::VKFrameBuffer::update_srgb(), blender::gpu::MTLTexture::update_sub(), blender::gpu::VKTexture::update_sub(), and blender::gpu::VKBatch::vertex_buffer_get().
|
inlinestatic |
Definition at line 184 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 278 of file gpu_framebuffer_private.hh.
|
inlinestatic |
Definition at line 356 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 136 of file gpu_shader_private.hh.
|
inlinestatic |
Definition at line 57 of file gpu_storage_buffer_private.hh.
|
inlinestatic |
Definition at line 327 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 60 of file gpu_uniform_buffer_private.hh.
|
inlinestatic |
Definition at line 52 of file vk_index_buffer.hh.
|
inlinestatic |
Definition at line 38 of file vk_pixel_buffer.hh.
Definition at line 135 of file vk_shader.hh.
Definition at line 140 of file vk_shader.hh.
| BLI_INLINE VKStorageBuffer * blender::gpu::unwrap | ( | StorageBuf * | storage_buffer | ) |
Definition at line 62 of file vk_storage_buffer.hh.
References BLI_INLINE.
| BLI_INLINE VKTexture * blender::gpu::unwrap | ( | Texture * | tex | ) |
Definition at line 182 of file vk_texture.hh.
References BLI_INLINE.
| BLI_INLINE VKVertexBuffer * blender::gpu::unwrap | ( | VertBuf * | vertex_buffer | ) |
Definition at line 77 of file vk_vertex_buffer.hh.
References BLI_INLINE.
|
constexpr |
Definition at line 769 of file gpu_texture_private.hh.
References ATTR_FALLTHROUGH, BLI_assert_unreachable, ELEM, GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, GPU_DATA_FLOAT, GPU_DATA_HALF_FLOAT, GPU_DATA_INT, GPU_DATA_UBYTE, GPU_DATA_UINT, GPU_DATA_UINT_24_8, GPU_DEPTH24_STENCIL8, GPU_DEPTH32F_STENCIL8, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_DEPTH_COMPONENT32F, GPU_R11F_G11F_B10F, GPU_R16, GPU_R16_SNORM, GPU_R16F, GPU_R16I, GPU_R16UI, GPU_R32F, GPU_R32I, GPU_R32UI, GPU_R8, GPU_R8_SNORM, GPU_R8I, GPU_R8UI, GPU_RG16, GPU_RG16_SNORM, GPU_RG16F, GPU_RG16I, GPU_RG16UI, GPU_RG32F, GPU_RG32I, GPU_RG32UI, GPU_RG8, GPU_RG8_SNORM, GPU_RG8I, GPU_RG8UI, GPU_RGB10_A2, GPU_RGB10_A2UI, GPU_RGB16, GPU_RGB16_SNORM, GPU_RGB16F, GPU_RGB16I, GPU_RGB16UI, GPU_RGB32F, GPU_RGB32I, GPU_RGB32UI, GPU_RGB8, GPU_RGB8_SNORM, GPU_RGB8I, GPU_RGB8UI, GPU_RGB9_E5, GPU_RGBA16, GPU_RGBA16_SNORM, GPU_RGBA16F, GPU_RGBA16I, GPU_RGBA16UI, GPU_RGBA32F, GPU_RGBA32I, GPU_RGBA32UI, GPU_RGBA8, GPU_RGBA8_DXT1, GPU_RGBA8_DXT3, GPU_RGBA8_DXT5, GPU_RGBA8_SNORM, GPU_RGBA8I, GPU_RGBA8UI, GPU_SRGB8, GPU_SRGB8_A8, GPU_SRGB8_A8_DXT1, GPU_SRGB8_A8_DXT3, and GPU_SRGB8_A8_DXT5.
Referenced by blender::gpu::GLTexture::clear(), blender::gpu::GLTexture::read(), blender::gpu::MTLTexture::read(), blender::gpu::tests::texture_create_upload_read(), blender::gpu::tests::texture_create_upload_read_pixel(), blender::gpu::tests::texture_create_upload_read_with_bias(), blender::gpu::GLTexture::update_sub(), blender::gpu::GLTexture::update_sub(), and blender::gpu::MTLTexture::update_sub().
|
static |
Returns enabled vertex pointers as a bit-flag (one bit per attribute).
Definition at line 27 of file gl_vertex_array.cc.
References BLI_assert, GPUVertAttr::comp_len, GPUVertAttr::comp_type, ELEM, GPUVertAttr::fetch_mode, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_FETCH_INT, GPU_FETCH_INT_TO_FLOAT_UNIT, GPU_vertformat_attr_name_get(), i, input, GPUVertAttr::name_len, GPUVertAttr::offset, GPUVertAttr::size, and to_gl().
Referenced by blender::gpu::GLVertArray::update_bindings(), and blender::gpu::GLVertArray::update_bindings().
|
static |
Definition at line 36 of file gpu_vertex_format.cc.
References GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_COMP_I32, GPU_COMP_I8, GPU_COMP_MAX, GPU_COMP_U16, GPU_COMP_U32, GPU_COMP_U8, GPU_FETCH_FLOAT, GPU_FETCH_INT, GPU_FETCH_INT_TO_FLOAT_UNIT, and Invalid.
Referenced by GPU_vertformat_attr_add().
|
static |
Definition at line 43 of file vk_backend.cc.
References blender::gpu::VKBackend::device, blender::gpu::VKDevice::extension_name_get(), and blender::gpu::VKBackend::get().
Referenced by blender::gpu::VKBackend::capabilities_init().
|
inlinestatic |
Definition at line 162 of file gpu_context_private.hh.
Referenced by blender::gpu::VKImmediate::end(), GPU_context_active_get(), GPU_context_create(), GPU_fence_create(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_create(), GPU_pixel_buffer_create(), GPU_shader_create_ex(), GPU_shader_create_from_info(), GPU_shader_create_from_info_python(), GPU_shader_get_bound(), GPU_storagebuf_create_ex(), GPU_texture_create_view(), GPU_uniformbuf_create_ex(), GPU_uniformbuf_create_from_list(), blender::gpu::VKContext::update_pipeline_data(), blender::gpu::GLTexture::~GLTexture(), and blender::gpu::MTLContext::~MTLContext().
|
inlinestatic |
Definition at line 180 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 274 of file gpu_framebuffer_private.hh.
|
inlinestatic |
Definition at line 352 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 132 of file gpu_shader_private.hh.
|
inlinestatic |
Definition at line 53 of file gpu_storage_buffer_private.hh.
|
inlinestatic |
Definition at line 323 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 56 of file gpu_uniform_buffer_private.hh.
| BLI_INLINE Texture * blender::gpu::wrap | ( | VKTexture * | texture | ) |
Definition at line 187 of file vk_texture.hh.
References BLI_INLINE, and texture().
| BLI_INLINE UniformBuf * blender::gpu::wrap | ( | VKUniformBuffer * | uniform_buffer | ) |
Definition at line 70 of file vk_uniform_buffer.hh.
References BLI_INLINE.
|
static |
Definition at line 93 of file vk_shader_compiler.cc.
References cache_dir_get(), blender::gpu::VKShaderModule::compilation_result, G, G_DEBUG_GPU_RENDERDOC, SEP_STR, size(), and blender::gpu::VKShaderModule::sources_hash.
Referenced by compile_ex().
|
staticconstexpr |
Offset when searching for bindings.
When shaders combine images and samplers, the images have to be offset to find the correct shader input. Both textures and images are stored in the uniform list and their ID can be overlapping.
Definition at line 33 of file vk_state_manager.hh.
Referenced by blender::gpu::VKShaderInterface::init().
|
constexpr |
Definition at line 29 of file vk_immediate.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::GLImmediate::GLImmediate(), and new_buffer_size().
| const MTLSamplerState blender::gpu::DEFAULT_SAMPLER_STATE = {GPUSamplerState::default_sampler() } |
Definition at line 174 of file mtl_texture.hh.
Referenced by blender::gpu::MTLComputeState::bind_compute_sampler(), blender::gpu::MTLRenderPassState::bind_fragment_sampler(), blender::gpu::MTLRenderPassState::bind_vertex_sampler(), blender::gpu::MTLContext::ensure_texture_bindings(), blender::gpu::MTLContext::ensure_texture_bindings(), and blender::gpu::MTLContext::MTLContext().
|
thread_local |
Definition at line 39 of file mtl_backend.mm.
Referenced by blender::gpu::MTLBackend::is_inside_render_boundary(), blender::gpu::MTLBackend::render_begin(), blender::gpu::MTLBackend::render_end(), and blender::gpu::MTLBackend::render_step().
|
thread_local |
Definition at line 40 of file mtl_backend.mm.
Referenced by blender::gpu::MTLBackend::render_begin(), and blender::gpu::MTLBackend::render_end().
| GPUCapabilities blender::gpu::GCaps |
Definition at line 22 of file gpu_capabilities.cc.
Referenced by blender::gpu::VKBackend::capabilities_init(), detect_workarounds(), GPU_clip_control_support(), GPU_compilation_subprocess_override_set(), GPU_crappy_amd_driver(), GPU_depth_blitting_workaround(), GPU_extension_get(), GPU_extensions_len(), GPU_geometry_shader_support(), GPU_hdr_support(), GPU_max_batch_indices(), GPU_max_batch_vertices(), GPU_max_compute_shader_storage_blocks(), GPU_max_images(), GPU_max_parallel_compilations(), GPU_max_samplers(), GPU_max_shader_storage_buffer_bindings(), GPU_max_storage_buffer_size(), GPU_max_texture_3d_size(), GPU_max_texture_layers(), GPU_max_texture_size(), GPU_max_textures(), GPU_max_textures_frag(), GPU_max_textures_geom(), GPU_max_textures_vert(), GPU_max_uniforms_frag(), GPU_max_uniforms_vert(), GPU_max_varying_floats(), GPU_max_vertex_attribs(), GPU_max_work_group_count(), GPU_max_work_group_size(), GPU_mem_stats_supported(), GPU_minimum_per_vertex_stride(), GPU_mip_render_workaround(), GPU_node_link_instancing_workaround(), gpu_shader_dependency_init(), GPU_shader_draw_parameters_support(), GPU_stencil_clasify_buffer_workaround(), GPU_stencil_export_support(), GPU_storage_buffer_alignment(), GPU_use_hq_normals_workaround(), GPU_use_main_context_workaround(), GPU_use_subprocess_compilation(), GPU_vulkan_render_pass_workaround(), and blender::gpu::GLBackend::init_resources().
| GPUPlatformGlobal blender::gpu::GPG |
Definition at line 31 of file gpu_platform.cc.
Referenced by blender::gpu::DummyBackend::DummyBackend(), GPU_platform_architecture(), GPU_platform_devices_list(), GPU_platform_gpu_name(), GPU_platform_luid(), GPU_platform_luid_node_mask(), GPU_platform_renderer(), GPU_platform_support_level(), GPU_platform_support_level_key(), GPU_platform_uuid(), GPU_platform_vendor(), GPU_platform_version(), GPU_type_matches_ex(), init_device_list(), and blender::gpu::VKBackend::platform_init().
|
static |
Definition at line 24 of file vk_immediate.cc.
Referenced by blender::gpu::GLContext::debug_group_end(), blender::gpu::VKContext::debug_group_end(), blender::gpu::VKIndexBuffer::ensure_updated(), blender::gpu::VKUniformBuffer::ensure_updated(), blender::gpu::VKPixelBuffer::get_native_handle(), GPU_vulkan_is_supported_driver(), blender::gpu::VKBackend::is_supported(), blender::gpu::VKExtensions::log(), blender::gpu::VKBackend::platform_init(), blender::gpu::Shader::print_log(), blender::gpu::VKIndexBuffer::read(), blender::gpu::VKVertexBuffer::read(), blender::gpu::VKPipelinePool::read_from_disk(), blender::gpu::VKDevice::submission_runner(), blender::gpu::VKStorageBuffer::update(), blender::gpu::VKVertexBuffer::upload_data(), and blender::gpu::VKPipelinePool::write_to_disk().
|
static |
Definition at line 17 of file vk_pixel_buffer.cc.
|
constexpr |
Definition at line 964 of file vk_data_conversion.cc.
Referenced by convert().
|
constexpr |
Definition at line 965 of file vk_data_conversion.cc.
Referenced by convert().
| std::mutex blender::gpu::msl_patch_default_lock |
Definition at line 47 of file mtl_shader_generator.mm.
Referenced by blender::gpu::MSLGeneratorInterface::msl_patch_default_get().
|
static |
Definition at line 137 of file mtl_texture.hh.
|
static |
Definition at line 136 of file mtl_texture.hh.
Referenced by blender::gpu::MTLFrameBuffer::add_color_attachment(), blender::gpu::MTLFrameBuffer::add_depth_attachment(), and blender::gpu::MTLFrameBuffer::add_stencil_attachment().
|
constexpr |
Definition at line 406 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 408 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 407 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 405 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 404 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Value for invisible elements in a GPU_PRIM_POINTS index buffer.
Definition at line 22 of file GPU_index_buffer.hh.
Referenced by blender::draw::create_lines_ibo_no_cyclic(), blender::draw::create_lines_ibo_with_cyclic(), blender::draw::extract_lines_paint_mask_subdiv(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), GPU_indexbuf_init_ex(), blender::draw::grease_pencil_weight_batch_ensure(), blender::draw::index_buf_add_bezier_lines(), blender::draw::index_buf_add_line_points(), and blender::draw::index_buf_add_nurbs_lines().
|
constexpr |
Definition at line 966 of file vk_data_conversion.cc.
|
constexpr |
Definition at line 967 of file vk_data_conversion.cc.
|
constexpr |
Definition at line 968 of file vk_data_conversion.cc.
|
static |
Definition at line 13 of file mtl_query.mm.
Referenced by blender::gpu::MTLQueryPool::begin_query(), and blender::gpu::MTLQueryPool::get_occlusion_result().
|
static |
Definition at line 17 of file mtl_query.mm.
Referenced by blender::gpu::MTLQueryPool::begin_query().