RetroArch
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Pass Class Reference
Collaboration diagram for Pass:
[legend]

Classes

struct  Parameter
 
struct  PushConstant
 

Public Member Functions

 Pass (VkDevice device, const VkPhysicalDeviceMemoryProperties &memory_properties, VkPipelineCache cache, unsigned num_sync_indices, bool final_pass)
 
 ~Pass ()
 
 Pass (Pass &&)=delete
 
void operator= (Pass &&)=delete
 
const Framebufferget_framebuffer () const
 
Framebufferget_feedback_framebuffer ()
 
Size2D set_pass_info (const Size2D &max_original, const Size2D &max_source, const vulkan_filter_chain_swapchain_info &swapchain, const vulkan_filter_chain_pass_info &info)
 
void set_shader (VkShaderStageFlags stage, const uint32_t *spirv, size_t spirv_words)
 
bool build ()
 
bool init_feedback ()
 
void build_commands (DeferredDisposer &disposer, VkCommandBuffer cmd, const Texture &original, const Texture &source, const VkViewport &vp, const float *mvp)
 
void notify_sync_index (unsigned index)
 
void set_frame_count (uint64_t count)
 
void set_frame_count_period (unsigned period)
 
void set_name (const char *name)
 
const stringget_name () const
 
vulkan_filter_chain_filter get_source_filter () const
 
vulkan_filter_chain_filter get_mip_filter () const
 
vulkan_filter_chain_address get_address_mode () const
 
void set_common_resources (CommonResources *common)
 
const slang_reflection & get_reflection () const
 
void set_pass_number (unsigned pass)
 
void add_parameter (unsigned parameter_index, const std::string &id)
 
void end_frame ()
 
void allocate_buffers ()
 

Public Attributes

struct target target
 
GLuint parameter_tex
 

Private Member Functions

Size2D get_output_size (const Size2D &original_size, const Size2D &max_source) const
 
void clear_vk ()
 
bool init_pipeline ()
 
bool init_pipeline_layout ()
 
void set_texture (VkDescriptorSet set, unsigned binding, const Texture &texture)
 
void set_semantic_texture (VkDescriptorSet set, slang_texture_semantic semantic, const Texture &texture)
 
void set_semantic_texture_array (VkDescriptorSet set, slang_texture_semantic semantic, unsigned index, const Texture &texture)
 
void set_uniform_buffer (VkDescriptorSet set, unsigned binding, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
 
void build_semantics (VkDescriptorSet set, uint8_t *buffer, const float *mvp, const Texture &original, const Texture &source)
 
void build_semantic_vec4 (uint8_t *data, slang_semantic semantic, unsigned width, unsigned height)
 
void build_semantic_uint (uint8_t *data, slang_semantic semantic, uint32_t value)
 
void build_semantic_parameter (uint8_t *data, unsigned index, float value)
 
void build_semantic_texture_vec4 (uint8_t *data, slang_texture_semantic semantic, unsigned width, unsigned height)
 
void build_semantic_texture_array_vec4 (uint8_t *data, slang_texture_semantic semantic, unsigned index, unsigned width, unsigned height)
 
void build_semantic_texture (VkDescriptorSet set, uint8_t *buffer, slang_texture_semantic semantic, const Texture &texture)
 
void build_semantic_texture_array (VkDescriptorSet set, uint8_t *buffer, slang_texture_semantic semantic, unsigned index, const Texture &texture)
 

Private Attributes

VkDevice device
 
const VkPhysicalDeviceMemoryPropertiesmemory_properties
 
VkPipelineCache cache
 
unsigned num_sync_indices
 
unsigned sync_index
 
bool final_pass
 
VkPipeline pipeline = VK_NULL_HANDLE
 
VkPipelineLayout pipeline_layout = VK_NULL_HANDLE
 
VkDescriptorSetLayout set_layout = VK_NULL_HANDLE
 
VkDescriptorPool pool = VK_NULL_HANDLE
 
vector< VkDescriptorSet > sets
 
CommonResourcescommon = nullptr
 
Size2D current_framebuffer_size
 
VkViewport current_viewport
 
vulkan_filter_chain_pass_info pass_info
 
vector< uint32_tvertex_shader
 
vector< uint32_tfragment_shader
 
unique_ptr< Framebufferframebuffer
 
unique_ptr< Framebufferframebuffer_feedback
 
VkRenderPass swapchain_render_pass
 
slang_reflection reflection
 
uint64_t frame_count = 0
 
unsigned frame_count_period = 0
 
unsigned pass_number = 0
 
size_t ubo_offset = 0
 
string pass_name
 
vector< Parameterparameters
 
vector< Parameterfiltered_parameters
 
PushConstant push
 

Constructor & Destructor Documentation

◆ Pass() [1/2]

Pass::Pass ( VkDevice  device,
const VkPhysicalDeviceMemoryProperties memory_properties,
VkPipelineCache  cache,
unsigned  num_sync_indices,
bool  final_pass 
)
inline

◆ ~Pass()

Pass::~Pass ( )
Here is the call graph for this function:

◆ Pass() [2/2]

Pass::Pass ( Pass &&  )
delete

Member Function Documentation

◆ add_parameter()

void Pass::add_parameter ( unsigned  parameter_index,
const std::string id 
)

◆ allocate_buffers()

void Pass::allocate_buffers ( )

◆ build()

bool Pass::build ( )
Here is the call graph for this function:

◆ build_commands()

void Pass::build_commands ( DeferredDisposer disposer,
VkCommandBuffer  cmd,
const Texture original,
const Texture source,
const VkViewport vp,
const float *  mvp 
)
Here is the call graph for this function:

◆ build_semantic_parameter()

void Pass::build_semantic_parameter ( uint8_t data,
unsigned  index,
float  value 
)
private
Here is the caller graph for this function:

◆ build_semantic_texture()

void Pass::build_semantic_texture ( VkDescriptorSet  set,
uint8_t buffer,
slang_texture_semantic  semantic,
const Texture texture 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_semantic_texture_array()

void Pass::build_semantic_texture_array ( VkDescriptorSet  set,
uint8_t buffer,
slang_texture_semantic  semantic,
unsigned  index,
const Texture texture 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_semantic_texture_array_vec4()

void Pass::build_semantic_texture_array_vec4 ( uint8_t data,
slang_texture_semantic  semantic,
unsigned  index,
unsigned  width,
unsigned  height 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_semantic_texture_vec4()

void Pass::build_semantic_texture_vec4 ( uint8_t data,
slang_texture_semantic  semantic,
unsigned  width,
unsigned  height 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_semantic_uint()

void Pass::build_semantic_uint ( uint8_t data,
slang_semantic  semantic,
uint32_t  value 
)
private
Here is the caller graph for this function:

◆ build_semantic_vec4()

void Pass::build_semantic_vec4 ( uint8_t data,
slang_semantic  semantic,
unsigned  width,
unsigned  height 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_semantics()

void Pass::build_semantics ( VkDescriptorSet  set,
uint8_t buffer,
const float *  mvp,
const Texture original,
const Texture source 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear_vk()

void Pass::clear_vk ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ end_frame()

void Pass::end_frame ( )
Here is the call graph for this function:

◆ get_address_mode()

vulkan_filter_chain_address Pass::get_address_mode ( ) const
inline

◆ get_feedback_framebuffer()

Framebuffer* Pass::get_feedback_framebuffer ( )
inline

◆ get_framebuffer()

const Framebuffer& Pass::get_framebuffer ( ) const
inline

◆ get_mip_filter()

vulkan_filter_chain_filter Pass::get_mip_filter ( ) const
inline

◆ get_name()

const string& Pass::get_name ( ) const
inline

◆ get_output_size()

Size2D Pass::get_output_size ( const Size2D original_size,
const Size2D max_source 
) const
private
Here is the caller graph for this function:

◆ get_reflection()

const slang_reflection& Pass::get_reflection ( ) const
inline

◆ get_source_filter()

vulkan_filter_chain_filter Pass::get_source_filter ( ) const
inline

◆ init_feedback()

bool Pass::init_feedback ( )

◆ init_pipeline()

bool Pass::init_pipeline ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_pipeline_layout()

bool Pass::init_pipeline_layout ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ notify_sync_index()

void Pass::notify_sync_index ( unsigned  index)
inline

◆ operator=()

void Pass::operator= ( Pass &&  )
delete

◆ set_common_resources()

void Pass::set_common_resources ( CommonResources common)
inline

◆ set_frame_count()

void Pass::set_frame_count ( uint64_t  count)
inline

◆ set_frame_count_period()

void Pass::set_frame_count_period ( unsigned  period)
inline

◆ set_name()

void Pass::set_name ( const char *  name)
inline

◆ set_pass_info()

Size2D Pass::set_pass_info ( const Size2D max_original,
const Size2D max_source,
const vulkan_filter_chain_swapchain_info swapchain,
const vulkan_filter_chain_pass_info info 
)
Here is the call graph for this function:

◆ set_pass_number()

void Pass::set_pass_number ( unsigned  pass)
inline

◆ set_semantic_texture()

void Pass::set_semantic_texture ( VkDescriptorSet  set,
slang_texture_semantic  semantic,
const Texture texture 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_semantic_texture_array()

void Pass::set_semantic_texture_array ( VkDescriptorSet  set,
slang_texture_semantic  semantic,
unsigned  index,
const Texture texture 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_shader()

void Pass::set_shader ( VkShaderStageFlags  stage,
const uint32_t spirv,
size_t  spirv_words 
)

◆ set_texture()

void Pass::set_texture ( VkDescriptorSet  set,
unsigned  binding,
const Texture texture 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_uniform_buffer()

void Pass::set_uniform_buffer ( VkDescriptorSet  set,
unsigned  binding,
VkBuffer  buffer,
VkDeviceSize  offset,
VkDeviceSize  range 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ cache

VkPipelineCache Pass::cache
private

◆ common

CommonResources* Pass::common = nullptr
private

◆ current_framebuffer_size

Size2D Pass::current_framebuffer_size
private

◆ current_viewport

VkViewport Pass::current_viewport
private

◆ device

VkDevice Pass::device
private

◆ filtered_parameters

vector<Parameter> Pass::filtered_parameters
private

◆ final_pass

bool Pass::final_pass
private

◆ fragment_shader

vector<uint32_t> Pass::fragment_shader
private

◆ frame_count

uint64_t Pass::frame_count = 0
private

◆ frame_count_period

unsigned Pass::frame_count_period = 0
private

◆ framebuffer

unique_ptr<Framebuffer> Pass::framebuffer
private

◆ framebuffer_feedback

unique_ptr<Framebuffer> Pass::framebuffer_feedback
private

◆ memory_properties

const VkPhysicalDeviceMemoryProperties& Pass::memory_properties
private

◆ num_sync_indices

unsigned Pass::num_sync_indices
private

◆ parameter_tex

GLuint Pass::parameter_tex

◆ parameters

vector<Parameter> Pass::parameters
private

◆ pass_info

vulkan_filter_chain_pass_info Pass::pass_info
private

◆ pass_name

string Pass::pass_name
private

◆ pass_number

unsigned Pass::pass_number = 0
private

◆ pipeline

VkPipeline Pass::pipeline = VK_NULL_HANDLE
private

◆ pipeline_layout

VkPipelineLayout Pass::pipeline_layout = VK_NULL_HANDLE
private

◆ pool

VkDescriptorPool Pass::pool = VK_NULL_HANDLE
private

◆ push

PushConstant Pass::push
private

◆ reflection

slang_reflection Pass::reflection
private

◆ set_layout

VkDescriptorSetLayout Pass::set_layout = VK_NULL_HANDLE
private

◆ sets

vector<VkDescriptorSet> Pass::sets
private

◆ swapchain_render_pass

VkRenderPass Pass::swapchain_render_pass
private

◆ sync_index

unsigned Pass::sync_index
private

◆ target

struct target Pass::target

◆ ubo_offset

size_t Pass::ubo_offset = 0
private

◆ vertex_shader

vector<uint32_t> Pass::vertex_shader
private

The documentation for this class was generated from the following files: