Lines Matching refs:prog
428 parcel_out_uniform_storage(struct gl_shader_program *prog,
432 : prog(prog), map(map), uniforms(uniforms), values(values)
459 prog->data->ShaderStorageBlocks : prog->data->UniformBlocks;
461 prog->data->NumShaderStorageBlocks : prog->data->NumUniformBlocks;
616 prog->_LinkedShaders[shader_type]->Program->sh.ImageAccess[i] = access;
627 prog->_LinkedShaders[shader_type]->Program->sh.NumSubroutineUniforms++;
822 struct gl_shader_program *prog;
1016 find_empty_block(struct gl_shader_program *prog,
1022 &prog->EmptyUniformLocations) {
1045 struct gl_shader_program *prog,
1050 prog->NumUniformRemapTable - num_explicit_uniform_locs;
1053 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) {
1054 if (prog->data->UniformStorage[i].type->is_subroutine() ||
1055 prog->data->UniformStorage[i].is_shader_storage)
1058 if (prog->data->UniformStorage[i].remap_location !=
1062 MAX2(1, prog->data->UniformStorage[i].array_elements);
1067 prog->data->UniformStorage[i].remap_location + j;
1068 assert(prog->UniformRemapTable[element_loc] ==
1070 prog->UniformRemapTable[element_loc] =
1071 &prog->data->UniformStorage[i];
1077 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) {
1079 if (prog->data->UniformStorage[i].type->is_subroutine() ||
1080 prog->data->UniformStorage[i].is_shader_storage)
1084 if (prog->data->UniformStorage[i].builtin)
1088 if (prog->data->UniformStorage[i].remap_location != UNMAPPED_UNIFORM_LOC)
1093 MAX2(1, prog->data->UniformStorage[i].array_elements);
1099 chosen_location = find_empty_block(prog, &prog->data->UniformStorage[i]);
1107 chosen_location = prog->NumUniformRemapTable;
1110 prog->UniformRemapTable =
1111 reralloc(prog,
1112 prog->UniformRemapTable,
1114 prog->NumUniformRemapTable + entries);
1115 prog->NumUniformRemapTable += entries;
1120 prog->UniformRemapTable[chosen_location + j] =
1121 &prog->data->UniformStorage[i];
1124 prog->data->UniformStorage[i].remap_location = chosen_location;
1132 linker_error(prog, "count of uniform locations > MAX_UNIFORM_LOCATIONS"
1138 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) {
1139 if (!prog->data->UniformStorage[i].type->is_subroutine())
1142 if (prog->data->UniformStorage[i].remap_location == UNMAPPED_UNIFORM_LOC)
1147 MAX2(1, prog->data->UniformStorage[i].array_elements);
1149 unsigned mask = prog->data->linked_stages;
1152 struct gl_program *p = prog->_LinkedShaders[j]->Program;
1154 if (!prog->data->UniformStorage[i].opaque[j].active)
1160 prog->data->UniformStorage[i].remap_location + k;
1164 &prog->data->UniformStorage[i];
1170 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) {
1171 if (!prog->data->UniformStorage[i].type->is_subroutine())
1174 if (prog->data->UniformStorage[i].remap_location !=
1179 MAX2(1, prog->data->UniformStorage[i].array_elements);
1181 unsigned mask = prog->data->linked_stages;
1184 struct gl_program *p = prog->_LinkedShaders[j]->Program;
1186 if (!prog->data->UniformStorage[i].opaque[j].active)
1197 &prog->data->UniformStorage[i];
1199 prog->data->UniformStorage[i].remap_location =
1208 struct gl_shader_program *prog,
1214 if (prog->data->NumUniformStorage == 0)
1219 prog->data->UniformStorage = rzalloc_array(prog, struct gl_uniform_storage,
1220 prog->data->NumUniformStorage);
1221 union gl_constant_value *data = rzalloc_array(prog->data->UniformStorage,
1228 parcel_out_uniform_storage parcel(prog, prog->UniformHash,
1229 prog->data->UniformStorage, data);
1232 if (prog->_LinkedShaders[i] == NULL)
1237 foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) {
1247 prog->_LinkedShaders[i]->Program->SamplersUsed =
1249 prog->_LinkedShaders[i]->shadow_samplers = parcel.shader_shadow_samplers;
1251 STATIC_ASSERT(sizeof(prog->_LinkedShaders[i]->Program->sh.SamplerTargets) ==
1253 memcpy(prog->_LinkedShaders[i]->Program->sh.SamplerTargets,
1255 sizeof(prog->_LinkedShaders[i]->Program->sh.SamplerTargets));
1259 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) {
1260 assert(prog->data->UniformStorage[i].storage != NULL ||
1261 prog->data->UniformStorage[i].builtin ||
1262 prog->data->UniformStorage[i].is_shader_storage ||
1263 prog->data->UniformStorage[i].block_index != -1);
1269 link_setup_uniform_remap_tables(ctx, prog, num_explicit_uniform_locs);
1271 link_set_uniform_initializers(prog, boolean_true);
1275 link_assign_uniform_locations(struct gl_shader_program *prog,
1279 ralloc_free(prog->data->UniformStorage);
1280 prog->data->UniformStorage = NULL;
1281 prog->data->NumUniformStorage = 0;
1283 if (prog->UniformHash != NULL) {
1284 prog->UniformHash->clear();
1286 prog->UniformHash = new string_to_uint_map;
1297 count_uniform_size uniform_size(prog->UniformHash, hiddenUniforms);
1299 struct gl_linked_shader *sh = prog->_LinkedShaders[i];
1331 prog->data->NumUniformStorage = uniform_size.num_active_uniforms;
1332 prog->data->NumHiddenUniforms = uniform_size.num_hidden_uniforms;
1338 link_assign_uniform_storage(ctx, prog, uniform_size.num_values,