blob: 329fbb555b38b207c527a2df8d455d5e90f3c094 [file] [log] [blame]
/*
* Copyright © 2016 Bas Nieuwenhuizen
*
* SPDX-License-Identifier: MIT
*/
#ifndef RADV_PIPELINE_LAYOUT_H
#define RADV_PIPELINE_LAYOUT_H
#include "util/mesa-blake3.h"
#include "radv_constants.h"
#include "vk_object.h"
struct radv_device;
struct radv_pipeline_layout {
struct vk_object_base base;
struct {
struct radv_descriptor_set_layout *layout;
uint32_t dynamic_offset_start;
} set[MAX_SETS];
uint32_t num_sets;
uint32_t push_constant_size;
uint32_t dynamic_offset_count;
uint16_t dynamic_shader_stages;
bool independent_sets;
blake3_hash hash;
};
VK_DEFINE_NONDISP_HANDLE_CASTS(radv_pipeline_layout, base, VkPipelineLayout, VK_OBJECT_TYPE_PIPELINE_LAYOUT)
void radv_pipeline_layout_init(struct radv_device *device, struct radv_pipeline_layout *layout, bool independent_sets);
void radv_pipeline_layout_finish(struct radv_device *device, struct radv_pipeline_layout *layout);
void radv_pipeline_layout_add_set(struct radv_pipeline_layout *layout, uint32_t set_idx,
struct radv_descriptor_set_layout *set_layout);
void radv_pipeline_layout_hash(struct radv_pipeline_layout *layout);
#endif /* RADV_PIPELINE_LAYOUT_H */