|
Blender V5.0
|
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 | GPUSourceDictionary = Map<StringRef, GPUSource *> |
| using | GPUFunctionDictionary = 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) |
| void | debug_validate_binding_image_format () |
| static char * | create_key (GPUSupportLevel 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) |
| 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 *fence) |
| static Fence * | unwrap (GPUFence *fence) |
| static const Fence * | unwrap (const GPUFence *fence) |
| bool | is_half_float (TextureFormat format) |
| static GPUPixelBuffer * | wrap (PixelBuffer *pixbuf) |
| static PixelBuffer * | unwrap (GPUPixelBuffer *pixbuf) |
| static const PixelBuffer * | unwrap (const GPUPixelBuffer *pixbuf) |
| size_t | to_bytesize (TextureFormat format) |
| size_t | to_block_size (TextureFormat data_type) |
| GPUTextureFormatFlag | to_format_flag (TextureFormat format) |
| int | to_component_len (TextureFormat format) |
| size_t | to_bytesize (eGPUDataFormat data_format) |
| size_t | to_bytesize (TextureFormat tex_format, eGPUDataFormat data_format) |
| constexpr bool | validate_data_format (TextureFormat tex_format, eGPUDataFormat data_format) |
| eGPUDataFormat | to_texture_data_format (TextureFormat tex_format) |
| GPUFrameBufferBits | to_framebuffer_bits (TextureFormat tex_format) |
| static TextureFormat | to_texture_format (const GPUVertFormat *format) |
| 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_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) |
| 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 (MTLInterfaceDataType 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 (GPUTextureType 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 (GPUBarrier barrier_bits) |
| GLenum | to_gl_internal_format (TextureFormat format) |
| GLenum | to_gl_target (GPUTextureType type) |
| GLenum | to_gl_proxy (GPUTextureType type) |
| GLenum | swizzle_to_gl (const char swizzle) |
| GLenum | to_gl (eGPUDataFormat format) |
| GLenum | to_gl_data_format (TextureFormat 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 GPUOSType | determine_os_type () |
| static void | init_device_list (GHOST_ContextHandle ghost_context) |
| VKBatch * | unwrap (Batch *batch) |
| VkImageAspectFlags | to_vk_image_aspect_flag_bits (const TextureFormat format) |
| VkImageAspectFlags | to_vk_image_aspect_flag_bits (const GPUFrameBufferBits buffers) |
| TextureFormat | to_gpu_format (const VkFormat format) |
| VkFormat | to_vk_format (const TextureFormat 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 GPUTextureType type) |
| VkImageViewType | to_vk_image_view_type (const GPUTextureType 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 GPUFaceCullTest 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 | 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, TextureFormat 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, TextureFormat device_format, ConversionType type) |
| static void | align_size (VkDeviceSize &r_size, VkDeviceSize alignment) |
| constexpr GPULoadStore | default_load_store () |
| static VKFrameBuffer * | unwrap (gpu::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) |
| constexpr VkExternalMemoryHandleTypeFlags | vk_external_memory_handle_type () |
| 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 GPUTextureFormatFlag format_flag) |
| static VkImageCreateFlags | to_vk_image_create (const GPUTextureType texture_type, const GPUTextureFormatFlag 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 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 (GPULoadOp action) |
| MTLStoreAction | mtl_store_action_from_gpu (GPUStoreOp 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 TextureFormat &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 void | split_array (StringRefNull input, std::string &r_name, std::string &r_array) |
| static MTLInterfaceDataType | 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 | shared_variable_args (const shader::ShaderCreateInfo &info, std::stringstream &ss) |
| static void | shared_variable_assign (const shader::ShaderCreateInfo &info, std::stringstream &ss) |
| static void | shared_variable_declare (const shader::ShaderCreateInfo &info, std::stringstream &ss) |
| static void | shared_variable_pass (const shader::ShaderCreateInfo &info, std::stringstream &ss) |
| 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 (GPUDepthTest depth_func) |
| static MTLCompareFunction | gpu_stencil_func_to_metal (GPUStencilTest stencil_func) |
| static void | mtl_stencil_set_op_separate (MTLContext *context, GPUFaceCullTest 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 (TextureFormat 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 GPUFrameBufferBits 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, TextureFormat host_texture_format, TextureFormat device_format) |
| void | convert_device_to_host (void *dst_buffer, const void *src_buffer, size_t buffer_size, eGPUDataFormat host_format, TextureFormat host_texture_format, TextureFormat device_format) |
Load/Store operations | |
| static VkAttachmentLoadOp | to_vk_attachment_load_op (GPULoadOp load_op) |
| static VkAttachmentStoreOp | to_vk_attachment_store_op (GPUStoreOp 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 std::string | patch_line_directives (std::string source) |
| 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 | 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 (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) |
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 715 of file vk_data_conversion.cc.
| using blender::gpu::F32 = ComponentValue<float> |
Definition at line 716 of file vk_data_conversion.cc.
| using blender::gpu::FLOAT3 = PixelValue<float3> |
Definition at line 717 of file vk_data_conversion.cc.
Definition at line 718 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::GPUFunctionDictionary = Map<StringRef, GPUFunction *> |
Definition at line 55 of file gpu_shader_dependency.cc.
| using blender::gpu::GPUPrintFormatMap = Map<uint32_t, shader::PrintfFormat> |
Definition at line 53 of file gpu_shader_dependency.cc.
| using blender::gpu::GPUSourceDictionary = Map<StringRef, GPUSource *> |
Definition at line 54 of file gpu_shader_dependency.cc.
| using blender::gpu::I16 = ComponentValue<int16_t> |
Definition at line 713 of file vk_data_conversion.cc.
| using blender::gpu::I32 = ComponentValue<int32_t> |
Definition at line 714 of file vk_data_conversion.cc.
| using blender::gpu::I8 = ComponentValue<int8_t> |
Definition at line 712 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.
| 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 710 of file vk_data_conversion.cc.
| using blender::gpu::UI32 = ComponentValue<uint32_t> |
Definition at line 711 of file vk_data_conversion.cc.
| using blender::gpu::UI8 = ComponentValue<uint8_t> |
Definition at line 709 of file vk_data_conversion.cc.
| using blender::gpu::VertBufPtr = std::unique_ptr<gpu::VertBuf, gpu::VertBufDeleter> |
Definition at line 83 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_B10F_G11F_R11F | |
| B10F_G11F_R11F_TO_FLOAT | |
| FLOAT3_TO_HALF4 | |
| HALF4_TO_FLOAT3 | |
| FLOAT3_TO_FLOAT4 | |
| FLOAT4_TO_FLOAT3 | |
| 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 128 of file GPU_format.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 | |
|---|---|
| GPU_SAMPLER_TYPE_FLOAT | |
| GPU_SAMPLER_TYPE_INT | |
| GPU_SAMPLER_TYPE_UINT | |
| GPU_SAMPLER_TYPE_DEPTH | |
| GPU_SAMPLER_TYPE_MAX | |
Definition at line 72 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 32 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 55 of file gpu_texture_private.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 33 of file vk_context.hh.
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| Warning | |
| Error | |
| Note | |
Definition at line 293 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 134 of file GPU_texture.hh.
|
strong |
Formats compatible with shader load/store.
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 205 of file GPU_texture.hh.
|
strong |
| Enumerator | |
|---|---|
| Invalid | |
Definition at line 23 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 80 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 118 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 65 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 404 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 361 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.
|
static |
Definition at line 176 of file vk_shader_compiler.cc.
References blender::gpu::VKShaderModule::combined_sources, blender::gpu::VKShaderModule::compilation_result, G, G_DEBUG_GPU_RENDERDOC, G_DEBUG_GPU_SHADER_DEBUG_INFO, GPU_DEVICE_QUALCOMM, GPU_DRIVER_ANY, GPU_OS_ANY, GPU_type_matches(), options, patch_line_directives(), read_spirv_from_disk(), to_stage_name(), and write_spirv_to_disk().
Referenced by blender::gpu::VKShaderCompiler::compile_module().
|
constexpr |
Definition at line 1081 of file mtl_shader_generator.mm.
References const_strlen(), and str.
Referenced by const_strlen().
|
static |
Definition at line 923 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 939 of file vk_data_conversion.cc.
References float, and blender::gpu::ComponentValue< InnerType >::value.
| void blender::gpu::convert | ( | DestinationType & | dst, |
| const SourceType & | src ) |
Definition at line 847 of file vk_data_conversion.cc.
Definition at line 889 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 827 of file vk_data_conversion.cc.
References float, blender::gpu::UnsignedNormalized< InnerType >::scalar(), blender::gpu::ComponentValue< InnerType >::value, and blender::gpu::UnsignedNormalized< InnerType >::value.
|
static |
Definition at line 913 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 859 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 881 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 866 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 946 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 802 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().
|
static |
Definition at line 933 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 839 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 898 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 834 of file vk_data_conversion.cc.
References BLI_assert_unreachable.
| void blender::gpu::convert | ( | UnsignedNormalized< StorageType > & | dst, |
| const F32 & | src ) |
Definition at line 817 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 978 of file vk_data_conversion.cc.
References B10F_G11F_R11F_TO_FLOAT, convert_per_component(), convert_per_pixel(), blender::MutableSpan< T >::data(), blender::Span< T >::data(), DEPTH32F_STENCIL8_TO_UINT, FLOAT3_TO_FLOAT4, FLOAT3_TO_HALF4, FLOAT4_TO_FLOAT3, FLOAT_TO_B10F_G11F_R11F, FLOAT_TO_HALF, blender::math::float_to_half_make_finite_array(), FLOAT_TO_SNORM16, FLOAT_TO_SNORM8, FLOAT_TO_UNORM16, FLOAT_TO_UNORM32, FLOAT_TO_UNORM8, 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, blender::threading::parallel_for(), PASS_THROUGH, PASS_THROUGH_D32F_S8, blender::IndexRange::size(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), SNORM16_TO_FLOAT, SNORM8_TO_FLOAT, to_bytesize(), to_component_len(), UI16_TO_UI32, UI32_TO_UI16, UI32_TO_UI8, UI8_TO_HALF, UI8_TO_UI32, UINT_TO_DEPTH32F_STENCIL8, 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, | ||
| TextureFormat | host_texture_format, | ||
| TextureFormat | 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 1150 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, | ||
| TextureFormat | host_texture_format, | ||
| TextureFormat | 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 1138 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 |
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, | ||
| TextureFormat | device_format ) |
Definition at line 955 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 969 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().
| void blender::gpu::debug_validate_binding_image_format | ( | ) |
Definition at line 170 of file gpu_debug.cc.
References BLI_assert_unreachable, G, G_DEBUG_GPU, blender::gpu::Context::get(), GPU_MAX_IMAGE, GPU_texture_format_name(), blender::gpu::StateManager::image_formats, blender::gpu::ShaderInterface::image_formats_, blender::gpu::Shader::interface, Invalid, blender::gpu::Context::shader, blender::gpu::Context::state_manager, to_texture_format(), and UNLIKELY.
Referenced by GPU_batch_draw_advanced(), GPU_batch_draw_indirect(), GPU_batch_multi_draw_indirect(), GPU_compute_dispatch(), and GPU_compute_dispatch_indirect().
|
static |
Definition at line 1121 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 371 of file gl_backend.cc.
References BLI_windows_get_directx_driver_version(), blender::gpu::GLContext::debug_layer_support, blender::gpu::GLContext::debug_layer_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::native_barycentric_support, printf, 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 309 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 60 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 149 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 1110 of file vk_shader.cc.
References name.
Referenced by blender::gpu::GLShader::geometry_interface_declare().
|
static |
Definition at line 682 of file vk_data_conversion.cc.
Referenced by convert().
|
inline |
Definition at line 247 of file GPU_format.hh.
References BLI_assert_unreachable, CASE, GPU_DATA_FORMAT_EXPAND, and Invalid.
Referenced by to_component_len().
|
inline |
Definition at line 395 of file mtl_shader.hh.
References format_resize_comp().
Referenced by mtl_convert_vertex_format_ex().
|
inline |
Definition at line 353 of file mtl_shader.hh.
References BLI_assert_unreachable, Char, Float, Int, RESIZE_TYPE, and Short.
Referenced by blender::gpu::MTLImmediate::end(), and format_get_component_type().
|
static |
Definition at line 426 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 51 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 127 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 366 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 | ( | TextureFormat | tex_format | ) |
Definition at line 35 of file mtl_texture_util.mm.
References BLI_assert_msg, CASE, GPU_TEXTURE_FORMAT_EXPAND, and Invalid.
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 668 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 init_device_list(), blender::gpu::VKBackend::is_supported(), and GHOST_InstanceVK::select_physical_device().
|
static |
Definition at line 608 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_DEPRECATED, 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 333 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, length(), and name.
Referenced by get_num_efficiency_cpu_cores(), and get_num_performance_cpu_cores().
|
static |
Try to check if the driver is older than 22.6.1, preferring false positives.
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 255 of file gpu_vertex_format.cc.
Referenced by blender::gpu::MTLImmediate::end(), GPUVertAttr::Type::fetch_mode(), and 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.
Referenced by GPUVertAttr::Type::fetch_mode().
|
inline |
Definition at line 19 of file gpu_texture_private.hh.
Referenced by blender::gpu::GLTexture::update_sub(), and blender::gpu::MTLTexture::update_sub().
|
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 638 of file vk_texture.cc.
References GPU_TEXTURE_USAGE_ATTACHMENT, and GPU_TEXTURE_USAGE_MEMORY_EXPORT.
|
static |
Definition at line 136 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 617 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 562 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 | ( | MTLInterfaceDataType | type | ) |
Definition at line 634 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 486 of file mtl_shader.hh.
References FORMAT_PER_TYPE.
|
inline |
Definition at line 606 of file mtl_texture.hh.
Referenced by blender::gpu::MTLTexture::update_sub().
|
inline |
Definition at line 526 of file mtl_shader.hh.
References FORMAT_PER_TYPE.
Referenced by mtl_convert_vertex_format_ex().
|
inline |
Definition at line 587 of file mtl_texture.hh.
| bool blender::gpu::mtl_format_supports_blending | ( | MTLPixelFormat | format | ) |
Definition at line 196 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 | ( | GPULoadOp | 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 | ( | GPUStoreOp | 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 638 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 2769 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 119 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 176 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 1686 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 165 of file vk_shader_compiler.cc.
Referenced by compile_ex().
|
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 795 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 2649 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_DEBUG, 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 190 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 371 of file gpu_shader_log.cc.
References 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 385 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, blender::gpu::shader::PrintfFormat::Block::NONE, 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 105 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 634 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 291 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 275 of file vk_shader_interface.cc.
|
static |
|
static |
Definition at line 378 of file mtl_shader_generator.mm.
References blender::gpu::shader::ShaderCreateInfo::SharedVariable::name, name, blender::gpu::shader::ShaderCreateInfo::shared_variables_, and split_array().
|
static |
Definition at line 389 of file mtl_shader_generator.mm.
References blender::gpu::shader::ShaderCreateInfo::SharedVariable::name, name, blender::gpu::shader::ShaderCreateInfo::shared_variables_, split_array(), to_string(), and blender::gpu::shader::ShaderCreateInfo::SharedVariable::type.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_compute_entry_stub().
|
static |
Definition at line 398 of file mtl_shader_generator.mm.
References blender::gpu::shader::ShaderCreateInfo::SharedVariable::name, name, blender::gpu::shader::ShaderCreateInfo::shared_variables_, and split_array().
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_compute_entry_stub().
|
static |
Definition at line 34 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().
|
static |
Definition at line 57 of file mtl_shader_generator.mm.
References input.
Referenced by blender::gpu::MTLShader::resources_declare(), shared_variable_args(), shared_variable_assign(), shared_variable_declare(), and shared_variable_pass().
|
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, length(), and name.
Referenced by blender::gpu::MTLBackend::metal_is_supported().
|
inline |
Definition at line 211 of file gl_texture.hh.
Referenced by blender::gpu::GLTexture::swizzle_set().
|
static |
Definition at line 1497 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 534 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_DEPRECATED.
Referenced by blender::gpu::MTLTexture::clear(), and blender::gpu::MTLTexture::update_sub().
|
inline |
Definition at line 508 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_DEPRECATED.
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 109 of file vk_vertex_attribute_object.cc.
References blender::ceil_division(), GPUVertAttr::Type::comp_len(), and GPUVertAttr::type.
|
static |
Definition at line 115 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 370 of file gpu_texture_private.hh.
References BLI_assert_msg.
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 231 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(), 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::GLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), and blender::gpu::VKTexture::update_sub().
|
inline |
Definition at line 529 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_DEPRECATED.
|
inline |
Definition at line 29 of file GPU_index_buffer.hh.
References GPU_INDEX_U32.
|
inline |
Definition at line 365 of file gpu_texture_private.hh.
References to_bytesize().
|
inline |
Definition at line 549 of file gpu_texture_private.hh.
References GPU_DATA_10_11_11_REV, GPU_DATA_2_10_10_10_REV, to_bytesize(), and to_component_len().
|
inline |
Definition at line 524 of file gpu_texture_private.hh.
References format_component_len().
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::GLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), and blender::gpu::MTLTexture::update_sub().
Definition at line 898 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().
|
inlineconstexpr |
Definition at line 126 of file GPU_texture.hh.
|
inlineconstexpr |
Definition at line 147 of file GPU_vertex_format.hh.
|
inline |
Definition at line 387 of file gpu_texture_private.hh.
References BLI_assert_unreachable, 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, and Invalid.
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(), blender::gpu::VKTexture::init_swapchain(), and blender::gpu::Texture::init_view().
|
inline |
Definition at line 789 of file gpu_texture_private.hh.
References BLI_assert_msg, BLI_assert_unreachable, GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_STENCIL_BIT, and Invalid.
|
inlinestatic |
Definition at line 121 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::GLTexture::update_sub(), blender::gpu::GLTexture::update_sub(), and vbo_bind().
|
inlinestatic |
Definition at line 147 of file gl_framebuffer.hh.
References GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_STENCIL_BIT, and mask().
|
inline |
Definition at line 234 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_DEPRECATED.
|
inlinestatic |
Definition at line 132 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.
|
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 543 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 259 of file gl_texture.hh.
References BLI_assert_msg, and Invalid.
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, CASE, GPU_TEXTURE_FORMAT_EXPAND, and Invalid.
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 187 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 162 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().
| TextureFormat blender::gpu::to_gpu_format | ( | const VkFormat | format | ) |
Definition at line 120 of file vk_common.cc.
References BLI_assert_unreachable.
Referenced by blender::gpu::VKContext::sync_backbuffer().
|
inline |
Definition at line 560 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 400 of file mtl_shader.hh.
References BLI_assert_msg, BLI_assert_unreachable, Char, Float, 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, GPU_FETCH_INT_TO_FLOAT_UNIT, Int, and Short.
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 2467 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 70 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.
|
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.
|
static |
Definition at line 89 of file vk_shader.cc.
| 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 51 of file mtl_shader.mm.
References ANY, COMPUTE, FRAGMENT, and VERTEX.
Referenced by 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::MTLShader::resources_declare(), blender::gpu::VKShader::resources_declare(), shared_variable_args(), shared_variable_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.
|
inline |
Definition at line 685 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_INT, GPU_DATA_UINT, GPU_DATA_UINT_24_8_DEPRECATED, and Invalid.
Referenced by GPU_texture_create_compressed_2d().
|
inlinestatic |
Definition at line 880 of file gpu_texture_private.hh.
References BLI_assert_msg.
|
inlineconstexpr |
Definition at line 197 of file GPU_texture.hh.
Referenced by debug_validate_binding_image_format(), GPU_texture_create_from_vertbuf(), and blender::gpu::VKVertexBuffer::to_vk_format().
|
inlineconstexpr |
Definition at line 262 of file GPU_texture.hh.
|
static |
Definition at line 265 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 279 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 598 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_DEPRECATED, and result.
Referenced by blender::gpu::VKTexture::clear().
| VkComponentSwizzle blender::gpu::to_vk_component_swizzle | ( | const char | swizzle | ) |
Definition at line 567 of file vk_common.cc.
References BLI_assert_unreachable.
Referenced by blender::gpu::VKImageView::VKImageView().
| VkCullModeFlags blender::gpu::to_vk_cull_mode_flags | ( | const GPUFaceCullTest | cull_test | ) |
Definition at line 679 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 804 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 710 of file vk_common.cc.
References BLI_assert_msg.
Referenced by to_vk_descriptor_type().
|
static |
Definition at line 754 of file vk_common.cc.
References blender::gpu::shader::undefined.
Referenced by to_vk_descriptor_type().
| VkFormat blender::gpu::to_vk_format | ( | const GPUVertCompType | type, |
| const uint32_t | size, | ||
| GPUVertFetchMode | fetch_mode ) |
Definition at line 390 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 409 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.
| VkFormat blender::gpu::to_vk_format | ( | const TextureFormat | format | ) |
Definition at line 136 of file vk_common.cc.
References CASE, GPU_TEXTURE_FORMAT_EXPAND, and Invalid.
Referenced by blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKVertexBuffer::to_vk_format(), and blender::gpu::VKImageView::VKImageView().
|
static |
Definition at line 236 of file vk_common.cc.
References BLI_assert_unreachable, GPU_COMP_F32, and size().
Referenced by to_vk_format().
|
static |
Definition at line 263 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 151 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 GPUFrameBufferBits | buffers | ) |
Definition at line 105 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 TextureFormat | format | ) |
Definition at line 14 of file vk_common.cc.
References BLI_assert_unreachable, and Invalid.
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::VKTexture::update_sub(), and blender::gpu::VKImageView::VKImageView().
|
static |
Definition at line 34 of file vk_texture.cc.
Referenced by blender::gpu::VKTexture::read_sub(), and blender::gpu::VKTexture::update_sub().
|
static |
Definition at line 620 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 GPUTextureType | type | ) |
Definition at line 475 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 572 of file vk_texture.cc.
References blender::gpu::VKBackend::device, 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 GPUTextureType | type, |
| const eImageViewUsage | view_type, | ||
| VKImageViewArrayed | arrayed ) |
Definition at line 504 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 633 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 87 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 647 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 465 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 693 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 79 of file vk_data_conversion.cc.
References BLI_assert_unreachable, FLOAT3_TO_FLOAT4, FLOAT3_TO_HALF4, FLOAT_TO_B10F_G11F_R11F, FLOAT_TO_HALF, FLOAT_TO_SNORM16, FLOAT_TO_SNORM8, FLOAT_TO_UNORM16, FLOAT_TO_UNORM8, Invalid, PASS_THROUGH, PASS_THROUGH_D32F_S8, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 356 of file vk_data_conversion.cc.
References BLI_assert_unreachable, Invalid, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 192 of file vk_data_conversion.cc.
References BLI_assert_unreachable, I32_TO_I16, I32_TO_I8, Invalid, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 600 of file vk_data_conversion.cc.
References ELEM, PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 592 of file vk_data_conversion.cc.
References PASS_THROUGH, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 433 of file vk_data_conversion.cc.
References BLI_assert_unreachable, Invalid, PASS_THROUGH, UI8_TO_HALF, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 273 of file vk_data_conversion.cc.
References BLI_assert_unreachable, Invalid, PASS_THROUGH, UI32_TO_UI16, UI32_TO_UI8, UNORM32_TO_FLOAT, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 512 of file vk_data_conversion.cc.
References BLI_assert_unreachable, Invalid, UINT_TO_DEPTH32F_STENCIL8, and UNSUPPORTED.
Referenced by host_to_device().
|
static |
Definition at line 692 of file vk_data_conversion.cc.
Referenced by convert().
|
inline |
Definition at line 31 of file vk_batch.hh.
References batch.
|
inlinestatic |
Definition at line 170 of file gpu_context_private.hh.
|
inlinestatic |
Definition at line 190 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 358 of file gpu_texture_private.hh.
|
inlinestatic |
Definition at line 150 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::VKFrameBuffer::blit_to(), blender::gpu::VKFrameBuffer::clear(), blender::gpu::VKBackend::compute_dispatch_indirect(), blender::gpu::VKStorageBuffer::copy_sub(), blender::gpu::VKTexture::copy_to(), blender::gpu::TexturePool::get(), 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_pixel_buffer_free(), GPU_pixel_buffer_get_native_handle(), GPU_pixel_buffer_map(), GPU_pixel_buffer_size(), GPU_pixel_buffer_unmap(), blender::gpu::VKStateManager::image_bind(), blender::gpu::VKStateManager::image_unbind(), blender::gpu::VKBatch::index_buffer_get(), blender::gpu::VKTexture::init_internal(), blender::gpu::VKTexture::init_internal(), blender::gpu::VKBatch::multi_draw_indirect(), blender::gpu::VKFrameBuffer::read(), blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), 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 186 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 354 of file gpu_texture_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 134 of file vk_shader.hh.
Definition at line 139 of file vk_shader.hh.
| BLI_INLINE VKStorageBuffer * blender::gpu::unwrap | ( | StorageBuf * | storage_buffer | ) |
Definition at line 67 of file vk_storage_buffer.hh.
References BLI_INLINE.
| BLI_INLINE VKTexture * blender::gpu::unwrap | ( | Texture * | tex | ) |
Definition at line 186 of file vk_texture.hh.
References BLI_INLINE.
| BLI_INLINE VKVertexBuffer * blender::gpu::unwrap | ( | VertBuf * | vertex_buffer | ) |
Definition at line 76 of file vk_vertex_buffer.hh.
References BLI_INLINE.
|
constexpr |
Definition at line 566 of file gpu_texture_private.hh.
References 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_DEPRECATED, and Invalid.
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 GPUVertAttr::Type::comp_len(), GPUVertAttr::Type::comp_type(), GPUVertAttr::Type::fetch_mode(), GPU_FETCH_FLOAT, GPU_FETCH_INT, GPU_FETCH_INT_TO_FLOAT_UNIT, GPU_vertformat_attr_name_get(), input, name, GPUVertAttr::name_len, GPUVertAttr::offset, GPUVertAttr::Type::size(), to_gl(), and GPUVertAttr::type.
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_legacy().
|
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().
|
constexpr |
Definition at line 16 of file vk_memory_pool.hh.
Referenced by blender::gpu::VKBuffer::create().
|
inlinestatic |
Definition at line 162 of file gpu_context_private.hh.
Referenced by GPU_context_active_get(), GPU_context_create(), GPU_fence_create(), and GPU_pixel_buffer_create().
|
inlinestatic |
Definition at line 182 of file gpu_state_private.hh.
|
inlinestatic |
Definition at line 350 of file gpu_texture_private.hh.
| BLI_INLINE Texture * blender::gpu::wrap | ( | VKTexture * | texture | ) |
Definition at line 191 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 28 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 176 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_compilation_subprocess_override_set(), 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_buffer_texture_size(), 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_uniform_buffer_size(), 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_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(), blender::gpu::GLBackend::init_resources(), and blender::gpu::VKContext::sync_backbuffer().
| 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::VKBuffer::create(), 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(), blender::gpu::shader::gpu_shader_dependency_get_resolved_source(), 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 907 of file vk_data_conversion.cc.
Referenced by convert().
|
constexpr |
Definition at line 908 of file vk_data_conversion.cc.
Referenced by convert().
| std::mutex blender::gpu::msl_patch_default_lock |
Definition at line 46 of file mtl_shader_generator.mm.
Referenced by blender::gpu::MSLGeneratorInterface::msl_patch_default_get().
|
static |
Definition at line 139 of file mtl_texture.hh.
|
static |
Definition at line 138 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 349 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 351 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 350 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 348 of file vk_device.cc.
Referenced by blender::gpu::VKDevice::vendor_name().
|
constexpr |
Definition at line 347 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_line_points(), and blender::draw::index_buf_add_nurbs_lines().
|
constexpr |
Definition at line 909 of file vk_data_conversion.cc.
|
constexpr |
Definition at line 910 of file vk_data_conversion.cc.
|
constexpr |
Definition at line 911 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().