Lines Matching defs:glprog
50 struct gl_program *glprog = sh->Program;
52 blob_write_uint32(metadata, glprog->sh.NumSubroutineUniforms);
53 blob_write_uint32(metadata, glprog->sh.MaxSubroutineFunctionIndex);
54 blob_write_uint32(metadata, glprog->sh.NumSubroutineFunctions);
55 for (unsigned j = 0; j < glprog->sh.NumSubroutineFunctions; j++) {
56 int num_types = glprog->sh.SubroutineFunctions[j].num_compat_types;
58 blob_write_string(metadata, glprog->sh.SubroutineFunctions[j].name);
59 blob_write_uint32(metadata, glprog->sh.SubroutineFunctions[j].index);
64 glprog->sh.SubroutineFunctions[j].types[k]);
80 struct gl_program *glprog = sh->Program;
82 glprog->sh.NumSubroutineUniforms = blob_read_uint32(metadata);
83 glprog->sh.MaxSubroutineFunctionIndex = blob_read_uint32(metadata);
84 glprog->sh.NumSubroutineFunctions = blob_read_uint32(metadata);
87 glprog->sh.NumSubroutineFunctions);
88 glprog->sh.SubroutineFunctions = subs;
90 for (unsigned j = 0; j < glprog->sh.NumSubroutineFunctions; j++) {
140 struct gl_program *glprog = sh->Program;
142 blob_write_uint32(metadata, glprog->info.num_ubos);
143 blob_write_uint32(metadata, glprog->info.num_ssbos);
145 for (unsigned j = 0; j < glprog->info.num_ubos; j++) {
147 glprog->sh.UniformBlocks[j] - prog->data->UniformBlocks;
151 for (unsigned j = 0; j < glprog->info.num_ssbos; j++) {
152 uint32_t offset = glprog->sh.ShaderStorageBlocks[j] -
216 struct gl_program *glprog = sh->Program;
218 glprog->info.num_ubos = blob_read_uint32(metadata);
219 glprog->info.num_ssbos = blob_read_uint32(metadata);
221 glprog->sh.UniformBlocks =
222 rzalloc_array(glprog, gl_uniform_block *, glprog->info.num_ubos);
223 glprog->sh.ShaderStorageBlocks =
224 rzalloc_array(glprog, gl_uniform_block *, glprog->info.num_ssbos);
226 for (unsigned j = 0; j < glprog->info.num_ubos; j++) {
228 glprog->sh.UniformBlocks[j] = prog->data->UniformBlocks + offset;
231 for (unsigned j = 0; j < glprog->info.num_ssbos; j++) {
233 glprog->sh.ShaderStorageBlocks[j] =
246 struct gl_program *glprog = prog->_LinkedShaders[i]->Program;
247 blob_write_uint32(metadata, glprog->info.num_abos);
277 struct gl_program *glprog = prog->_LinkedShaders[i]->Program;
279 glprog->info.num_abos = blob_read_uint32(metadata);
280 glprog->sh.AtomicBuffers =
281 rzalloc_array(glprog, gl_active_atomic_buffer *,
282 glprog->info.num_abos);
283 stage_buff_list[i] = glprog->sh.AtomicBuffers;
601 struct gl_program *glprog = sh->Program;
602 blob_write_uint32(metadata, glprog->sh.NumSubroutineUniformRemapTable);
604 for (unsigned j = 0; j < glprog->sh.NumSubroutineUniformRemapTable; j++) {
607 glprog->sh.SubroutineUniformRemapTable[j]);
649 struct gl_program *glprog = sh->Program;
650 glprog->sh.NumSubroutineUniformRemapTable = blob_read_uint32(metadata);
652 glprog->sh.SubroutineUniformRemapTable =
653 rzalloc_array(glprog, struct gl_uniform_storage *,
654 glprog->sh.NumSubroutineUniformRemapTable);
656 for (unsigned j = 0; j < glprog->sh.NumSubroutineUniformRemapTable; j++) {
662 &glprog->sh.SubroutineUniformRemapTable[j],
1054 struct gl_program *glprog = shader->Program;
1057 blob_write_uint64(metadata, glprog->DualSlotInputs);
1058 blob_write_bytes(metadata, glprog->TexturesUsed,
1059 sizeof(glprog->TexturesUsed));
1060 blob_write_uint64(metadata, glprog->SamplersUsed);
1062 blob_write_bytes(metadata, glprog->SamplerUnits,
1063 sizeof(glprog->SamplerUnits));
1064 blob_write_bytes(metadata, glprog->sh.SamplerTargets,
1065 sizeof(glprog->sh.SamplerTargets));
1066 blob_write_uint32(metadata, glprog->ShadowSamplers);
1067 blob_write_uint32(metadata, glprog->ExternalSamplersUsed);
1068 blob_write_uint32(metadata, glprog->sh.ShaderStorageBlocksWriteAccess);
1070 blob_write_bytes(metadata, glprog->sh.ImageAccess,
1071 sizeof(glprog->sh.ImageAccess));
1072 blob_write_bytes(metadata, glprog->sh.ImageUnits,
1073 sizeof(glprog->sh.ImageUnits));
1077 blob_write_uint32(metadata, glprog->sh.NumBindlessSamplers);
1078 blob_write_uint32(metadata, glprog->sh.HasBoundBindlessSampler);
1079 for (i = 0; i < glprog->sh.NumBindlessSamplers; i++) {
1080 blob_write_bytes(metadata, &glprog->sh.BindlessSamplers[i],
1084 blob_write_uint32(metadata, glprog->sh.NumBindlessImages);
1085 blob_write_uint32(metadata, glprog->sh.HasBoundBindlessImage);
1086 for (i = 0; i < glprog->sh.NumBindlessImages; i++) {
1087 blob_write_bytes(metadata, &glprog->sh.BindlessImages[i],
1091 blob_write_bytes(metadata, &glprog->sh.fs.BlendSupport,
1092 sizeof(glprog->sh.fs.BlendSupport));
1094 write_shader_parameters(metadata, glprog->Parameters);
1096 assert((glprog->driver_cache_blob == NULL) ==
1097 (glprog->driver_cache_blob_size == 0));
1098 blob_write_uint32(metadata, (uint32_t)glprog->driver_cache_blob_size);
1099 if (glprog->driver_cache_blob_size > 0) {
1100 blob_write_bytes(metadata, glprog->driver_cache_blob,
1101 glprog->driver_cache_blob_size);
1107 struct gl_program *glprog,
1112 glprog->DualSlotInputs = blob_read_uint64(metadata);
1113 blob_copy_bytes(metadata, (uint8_t *) glprog->TexturesUsed,
1114 sizeof(glprog->TexturesUsed));
1115 glprog->SamplersUsed = blob_read_uint64(metadata);
1117 blob_copy_bytes(metadata, (uint8_t *) glprog->SamplerUnits,
1118 sizeof(glprog->SamplerUnits));
1119 blob_copy_bytes(metadata, (uint8_t *) glprog->sh.SamplerTargets,
1120 sizeof(glprog->sh.SamplerTargets));
1121 glprog->ShadowSamplers = blob_read_uint32(metadata);
1122 glprog->ExternalSamplersUsed = blob_read_uint32(metadata);
1123 glprog->sh.ShaderStorageBlocksWriteAccess = blob_read_uint32(metadata);
1125 blob_copy_bytes(metadata, (uint8_t *) glprog->sh.ImageAccess,
1126 sizeof(glprog->sh.ImageAccess));
1127 blob_copy_bytes(metadata, (uint8_t *) glprog->sh.ImageUnits,
1128 sizeof(glprog->sh.ImageUnits));
1132 glprog->sh.NumBindlessSamplers = blob_read_uint32(metadata);
1133 glprog->sh.HasBoundBindlessSampler = blob_read_uint32(metadata);
1134 if (glprog->sh.NumBindlessSamplers > 0) {
1135 glprog->sh.BindlessSamplers =
1136 rzalloc_array(glprog, gl_bindless_sampler,
1137 glprog->sh.NumBindlessSamplers);
1139 for (i = 0; i < glprog->sh.NumBindlessSamplers; i++) {
1140 blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.BindlessSamplers[i],
1145 glprog->sh.NumBindlessImages = blob_read_uint32(metadata);
1146 glprog->sh.HasBoundBindlessImage = blob_read_uint32(metadata);
1147 if (glprog->sh.NumBindlessImages > 0) {
1148 glprog->sh.BindlessImages =
1149 rzalloc_array(glprog, gl_bindless_image,
1150 glprog->sh.NumBindlessImages);
1152 for (i = 0; i < glprog->sh.NumBindlessImages; i++) {
1153 blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.BindlessImages[i],
1158 blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.fs.BlendSupport,
1159 sizeof(glprog->sh.fs.BlendSupport));
1161 glprog->Parameters = _mesa_new_parameter_list();
1162 read_shader_parameters(metadata, glprog->Parameters);
1164 glprog->driver_cache_blob_size = (size_t)blob_read_uint32(metadata);
1165 if (glprog->driver_cache_blob_size > 0) {
1166 glprog->driver_cache_blob =
1167 (uint8_t*)ralloc_size(glprog, glprog->driver_cache_blob_size);
1168 blob_copy_bytes(metadata, glprog->driver_cache_blob,
1169 glprog->driver_cache_blob_size);
1187 struct gl_program *glprog;
1192 glprog = ctx->Driver.NewProgram(ctx, _mesa_shader_stage_to_program(stage),
1194 glprog->info.stage = stage;
1195 linked->Program = glprog;
1197 read_shader_metadata(metadata, glprog, linked);
1199 glprog->info.name = ralloc_strdup(glprog, blob_read_string(metadata));
1200 glprog->info.label = ralloc_strdup(glprog, blob_read_string(metadata));
1204 &glprog->info);
1207 blob_copy_bytes(metadata, ((uint8_t *) &glprog->info) + s_info_ptrs,
1210 _mesa_reference_shader_program_data(ctx, &glprog->sh.data, prog->data);
1211 _mesa_reference_program(ctx, &linked->Program, glprog);