| /* |
| * 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 */ |