#include "pipe/p_defines.h"
#include "pipe/p_state.h"
+#include "compiler/shader_info.h"
+
#include <vulkan/vulkan.h>
struct pipe_screen;
struct zink_screen;
+struct zink_gfx_program;
struct nir_shader_compiler_options;
struct nir_shader;
+struct set;
+
struct tgsi_token;
const void *
struct zink_shader {
VkShaderModule shader_module;
+ shader_info info;
+
struct {
int index;
int binding;
VkDescriptorType type;
} bindings[PIPE_MAX_CONSTANT_BUFFERS + PIPE_MAX_SHADER_SAMPLER_VIEWS];
size_t num_bindings;
+ struct set *programs;
};
struct zink_shader *
-zink_compile_nir(struct zink_screen *screen, struct nir_shader *nir);
+zink_compile_nir(struct zink_screen *screen, struct nir_shader *nir,
+ const struct pipe_stream_output_info *so_info);
void
zink_shader_free(struct zink_screen *screen, struct zink_shader *shader);