blob: f3e4444943bf7d15eb92855a0419b73314b5b4da [file] [log] [blame]
/*
* Copyright © 2016 Red Hat.
* Copyright © 2016 Bas Nieuwenhuizen
*
* based in part on anv driver which is:
* Copyright © 2015 Intel Corporation
*
* SPDX-License-Identifier: MIT
*/
#ifndef RADV_SHADER_OBJECT_H
#define RADV_SHADER_OBJECT_H
#include "radv_shader.h"
struct radv_shader_object {
struct vk_object_base base;
gl_shader_stage stage;
VkShaderCodeTypeEXT code_type;
/* Main shader */
struct radv_shader *shader;
struct radv_shader_binary *binary;
/* Shader variants */
/* VS before TCS */
struct {
struct radv_shader *shader;
struct radv_shader_binary *binary;
} as_ls;
/* VS/TES before GS */
struct {
struct radv_shader *shader;
struct radv_shader_binary *binary;
} as_es;
/* GS copy shader */
struct {
struct radv_shader *copy_shader;
struct radv_shader_binary *copy_binary;
} gs;
uint32_t push_constant_size;
uint32_t dynamic_offset_count;
};
VK_DEFINE_NONDISP_HANDLE_CASTS(radv_shader_object, base, VkShaderEXT, VK_OBJECT_TYPE_SHADER_EXT);
#endif /* RADV_SHADER_OBJECT_H */