Need to pass ssbo + ssbo size pointers just like constants.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
NULL,
draw_sampler,
&llvm->draw->vs.vertex_shader->info,
- NULL);
+ NULL, NULL, NULL);
{
LLVMValueRef out;
NULL,
sampler,
&llvm->draw->gs.geometry_shader->info,
- (const struct lp_build_tgsi_gs_iface *)&gs_iface);
+ (const struct lp_build_tgsi_gs_iface *)&gs_iface, NULL, NULL);
sampler->destroy(sampler);
LLVMValueRef thread_data_ptr,
const struct lp_build_sampler_soa *sampler,
const struct tgsi_shader_info *info,
- const struct lp_build_tgsi_gs_iface *gs_iface);
+ const struct lp_build_tgsi_gs_iface *gs_iface,
+ LLVMValueRef ssbo_ptr,
+ LLVMValueRef ssbo_sizes_ptr);
void
LLVMValueRef context_ptr;
LLVMValueRef thread_data_ptr;
+ LLVMValueRef ssbo_ptr;
+ LLVMValueRef ssbo_sizes_ptr;
+
const struct lp_build_sampler_soa *sampler;
struct tgsi_declaration_sampler_view sv[PIPE_MAX_SHADER_SAMPLER_VIEWS];
LLVMValueRef thread_data_ptr,
const struct lp_build_sampler_soa *sampler,
const struct tgsi_shader_info *info,
- const struct lp_build_tgsi_gs_iface *gs_iface)
+ const struct lp_build_tgsi_gs_iface *gs_iface,
+ LLVMValueRef ssbo_ptr,
+ LLVMValueRef ssbo_sizes_ptr)
{
struct lp_build_tgsi_soa_context bld;
bld.outputs = outputs;
bld.consts_ptr = consts_ptr;
bld.const_sizes_ptr = const_sizes_ptr;
+ bld.ssbo_ptr = ssbo_ptr;
+ bld.ssbo_sizes_ptr = ssbo_sizes_ptr;
bld.sampler = sampler;
bld.bld_base.info = info;
bld.indirect_files = info->indirect_files;
consts_ptr, num_consts_ptr, &system_values,
interp->inputs,
outputs, context_ptr, thread_data_ptr,
- sampler, &shader->info.base, NULL);
+ sampler, &shader->info.base, NULL, NULL, NULL);
/* Alpha test */
if (key->alpha.enabled) {
NULL, // thread data
sampler,
&gs->info.base,
- &gs_iface.base);
+ &gs_iface.base,
+ NULL, NULL); // ssbos
lp_build_mask_end(&mask);
NULL, // thread data
sampler, // sampler
&swr_vs->info.base,
- NULL); // geometry shader face
+ NULL, // geometry shader face
+ NULL, NULL); // ssbos
sampler->destroy(sampler);
NULL, // thread data
sampler, // sampler
&swr_fs->info.base,
- NULL); // geometry shader face
+ NULL, // geometry shader face
+ NULL, NULL); //ssbos
sampler->destroy(sampler);