Lines Matching refs:metadata

43 write_subroutines(struct blob *metadata, struct gl_shader_program *prog)
52 blob_write_uint32(metadata, glprog->sh.NumSubroutineUniforms);
53 blob_write_uint32(metadata, glprog->sh.MaxSubroutineFunctionIndex);
54 blob_write_uint32(metadata, glprog->sh.NumSubroutineFunctions);
58 blob_write_string(metadata, glprog->sh.SubroutineFunctions[j].name);
59 blob_write_uint32(metadata, glprog->sh.SubroutineFunctions[j].index);
60 blob_write_uint32(metadata, num_types);
63 encode_type_to_blob(metadata,
71 read_subroutines(struct blob_reader *metadata, struct gl_shader_program *prog)
82 glprog->sh.NumSubroutineUniforms = blob_read_uint32(metadata);
83 glprog->sh.MaxSubroutineFunctionIndex = blob_read_uint32(metadata);
84 glprog->sh.NumSubroutineFunctions = blob_read_uint32(metadata);
91 subs[j].name = ralloc_strdup(prog, blob_read_string (metadata));
92 subs[j].index = (int) blob_read_uint32(metadata);
93 subs[j].num_compat_types = (int) blob_read_uint32(metadata);
98 subs[j].types[k] = decode_type_from_blob(metadata);
105 write_buffer_block(struct blob *metadata, struct gl_uniform_block *b)
107 blob_write_string(metadata, b->Name);
108 blob_write_uint32(metadata, b->NumUniforms);
109 blob_write_uint32(metadata, b->Binding);
110 blob_write_uint32(metadata, b->UniformBufferSize);
111 blob_write_uint32(metadata, b->stageref);
114 blob_write_string(metadata, b->Uniforms[j].Name);
115 blob_write_string(metadata, b->Uniforms[j].IndexName);
116 encode_type_to_blob(metadata, b->Uniforms[j].Type);
117 blob_write_uint32(metadata, b->Uniforms[j].Offset);
122 write_buffer_blocks(struct blob *metadata, struct gl_shader_program *prog)
124 blob_write_uint32(metadata, prog->data->NumUniformBlocks);
125 blob_write_uint32(metadata, prog->data->NumShaderStorageBlocks);
128 write_buffer_block(metadata, &prog->data->UniformBlocks[i]);
132 write_buffer_block(metadata, &prog->data->ShaderStorageBlocks[i]);
142 blob_write_uint32(metadata, glprog->info.num_ubos);
143 blob_write_uint32(metadata, glprog->info.num_ssbos);
148 blob_write_uint32(metadata, offset);
154 blob_write_uint32(metadata, offset);
160 read_buffer_block(struct blob_reader *metadata, struct gl_uniform_block *b,
163 b->Name = ralloc_strdup(prog->data, blob_read_string (metadata));
164 b->NumUniforms = blob_read_uint32(metadata);
165 b->Binding = blob_read_uint32(metadata);
166 b->UniformBufferSize = blob_read_uint32(metadata);
167 b->stageref = blob_read_uint32(metadata);
174 blob_read_string (metadata));
176 char *index_name = blob_read_string(metadata);
183 b->Uniforms[j].Type = decode_type_from_blob(metadata);
184 b->Uniforms[j].Offset = blob_read_uint32(metadata);
189 read_buffer_blocks(struct blob_reader *metadata,
192 prog->data->NumUniformBlocks = blob_read_uint32(metadata);
193 prog->data->NumShaderStorageBlocks = blob_read_uint32(metadata);
204 read_buffer_block(metadata, &prog->data->UniformBlocks[i], prog);
208 read_buffer_block(metadata, &prog->data->ShaderStorageBlocks[i], prog);
218 glprog->info.num_ubos = blob_read_uint32(metadata);
219 glprog->info.num_ssbos = blob_read_uint32(metadata);
227 uint32_t offset = blob_read_uint32(metadata);
232 uint32_t offset = blob_read_uint32(metadata);
240 write_atomic_buffers(struct blob *metadata, struct gl_shader_program *prog)
242 blob_write_uint32(metadata, prog->data->NumAtomicBuffers);
247 blob_write_uint32(metadata, glprog->info.num_abos);
252 blob_write_uint32(metadata, prog->data->AtomicBuffers[i].Binding);
253 blob_write_uint32(metadata, prog->data->AtomicBuffers[i].MinimumSize);
254 blob_write_uint32(metadata, prog->data->AtomicBuffers[i].NumUniforms);
256 blob_write_bytes(metadata, prog->data->AtomicBuffers[i].StageReferences,
260 blob_write_uint32(metadata, prog->data->AtomicBuffers[i].Uniforms[j]);
266 read_atomic_buffers(struct blob_reader *metadata,
269 prog->data->NumAtomicBuffers = blob_read_uint32(metadata);
279 glprog->info.num_abos = blob_read_uint32(metadata);
288 prog->data->AtomicBuffers[i].Binding = blob_read_uint32(metadata);
289 prog->data->AtomicBuffers[i].MinimumSize = blob_read_uint32(metadata);
290 prog->data->AtomicBuffers[i].NumUniforms = blob_read_uint32(metadata);
292 blob_copy_bytes(metadata,
300 prog->data->AtomicBuffers[i].Uniforms[j] = blob_read_uint32(metadata);
313 write_xfb(struct blob *metadata, struct gl_shader_program *shProg)
318 blob_write_uint32(metadata, ~0u);
324 blob_write_uint32(metadata, prog->info.stage);
327 blob_write_uint32(metadata, shProg->TransformFeedback.BufferMode);
328 blob_write_bytes(metadata, shProg->TransformFeedback.BufferStride,
330 blob_write_uint32(metadata, shProg->TransformFeedback.NumVarying);
332 blob_write_string(metadata, shProg->TransformFeedback.VaryingNames[i]);
334 blob_write_uint32(metadata, ltf->NumOutputs);
335 blob_write_uint32(metadata, ltf->ActiveBuffers);
336 blob_write_uint32(metadata, ltf->NumVarying);
338 blob_write_bytes(metadata, ltf->Outputs,
343 blob_write_string(metadata, ltf->Varyings[i].Name);
344 blob_write_uint32(metadata, ltf->Varyings[i].Type);
345 blob_write_uint32(metadata, ltf->Varyings[i].BufferIndex);
346 blob_write_uint32(metadata, ltf->Varyings[i].Size);
347 blob_write_uint32(metadata, ltf->Varyings[i].Offset);
350 blob_write_bytes(metadata, ltf->Buffers,
356 read_xfb(struct blob_reader *metadata, struct gl_shader_program *shProg)
358 unsigned xfb_stage = blob_read_uint32(metadata);
369 shProg->TransformFeedback.BufferMode = blob_read_uint32(metadata);
370 blob_copy_bytes(metadata, &shProg->TransformFeedback.BufferStride,
372 shProg->TransformFeedback.NumVarying = blob_read_uint32(metadata);
380 strdup(blob_read_string(metadata));
389 ltf->NumOutputs = blob_read_uint32(metadata);
390 ltf->ActiveBuffers = blob_read_uint32(metadata);
391 ltf->NumVarying = blob_read_uint32(metadata);
396 blob_copy_bytes(metadata, (uint8_t *) ltf->Outputs,
405 ltf->Varyings[i].Name = ralloc_strdup(prog, blob_read_string(metadata));
406 ltf->Varyings[i].Type = blob_read_uint32(metadata);
407 ltf->Varyings[i].BufferIndex = blob_read_uint32(metadata);
408 ltf->Varyings[i].Size = blob_read_uint32(metadata);
409 ltf->Varyings[i].Offset = blob_read_uint32(metadata);
412 blob_copy_bytes(metadata, (uint8_t *) ltf->Buffers,
429 write_uniforms(struct blob *metadata, struct gl_shader_program *prog)
431 blob_write_uint32(metadata, prog->SamplersValidated);
432 blob_write_uint32(metadata, prog->data->NumUniformStorage);
433 blob_write_uint32(metadata, prog->data->NumUniformDataSlots);
436 encode_type_to_blob(metadata, prog->data->UniformStorage[i].type);
437 blob_write_uint32(metadata, prog->data->UniformStorage[i].array_elements);
438 blob_write_string(metadata, prog->data->UniformStorage[i].name);
439 blob_write_uint32(metadata, prog->data->UniformStorage[i].builtin);
440 blob_write_uint32(metadata, prog->data->UniformStorage[i].remap_location);
441 blob_write_uint32(metadata, prog->data->UniformStorage[i].block_index);
442 blob_write_uint32(metadata, prog->data->UniformStorage[i].atomic_buffer_index);
443 blob_write_uint32(metadata, prog->data->UniformStorage[i].offset);
444 blob_write_uint32(metadata, prog->data->UniformStorage[i].array_stride);
445 blob_write_uint32(metadata, prog->data->UniformStorage[i].hidden);
446 blob_write_uint32(metadata, prog->data->UniformStorage[i].is_shader_storage);
447 blob_write_uint32(metadata, prog->data->UniformStorage[i].active_shader_mask);
448 blob_write_uint32(metadata, prog->data->UniformStorage[i].matrix_stride);
449 blob_write_uint32(metadata, prog->data->UniformStorage[i].row_major);
450 blob_write_uint32(metadata, prog->data->UniformStorage[i].is_bindless);
451 blob_write_uint32(metadata,
453 blob_write_uint32(metadata,
455 blob_write_uint32(metadata,
459 blob_write_uint32(metadata, prog->data->UniformStorage[i].storage -
463 blob_write_bytes(metadata, prog->data->UniformStorage[i].opaque,
472 blob_write_uint32(metadata, prog->data->NumHiddenUniforms);
481 blob_write_bytes(metadata, &prog->data->UniformDataDefaults[slot],
488 read_uniforms(struct blob_reader *metadata, struct gl_shader_program *prog)
493 prog->SamplersValidated = blob_read_uint32(metadata);
494 prog->data->NumUniformStorage = blob_read_uint32(metadata);
495 prog->data->NumUniformDataSlots = blob_read_uint32(metadata);
511 uniforms[i].type = decode_type_from_blob(metadata);
512 uniforms[i].array_elements = blob_read_uint32(metadata);
513 uniforms[i].name = ralloc_strdup(prog, blob_read_string (metadata));
514 uniforms[i].builtin = blob_read_uint32(metadata);
515 uniforms[i].remap_location = blob_read_uint32(metadata);
516 uniforms[i].block_index = blob_read_uint32(metadata);
517 uniforms[i].atomic_buffer_index = blob_read_uint32(metadata);
518 uniforms[i].offset = blob_read_uint32(metadata);
519 uniforms[i].array_stride = blob_read_uint32(metadata);
520 uniforms[i].hidden = blob_read_uint32(metadata);
521 uniforms[i].is_shader_storage = blob_read_uint32(metadata);
522 uniforms[i].active_shader_mask = blob_read_uint32(metadata);
523 uniforms[i].matrix_stride = blob_read_uint32(metadata);
524 uniforms[i].row_major = blob_read_uint32(metadata);
525 uniforms[i].is_bindless = blob_read_uint32(metadata);
526 uniforms[i].num_compatible_subroutines = blob_read_uint32(metadata);
527 uniforms[i].top_level_array_size = blob_read_uint32(metadata);
528 uniforms[i].top_level_array_stride = blob_read_uint32(metadata);
532 uniforms[i].storage = data + blob_read_uint32(metadata);
536 blob_read_bytes(metadata, sizeof(uniforms[i].opaque)),
541 prog->data->NumHiddenUniforms = blob_read_uint32(metadata);
550 blob_copy_bytes(metadata,
571 write_uniform_remap_table_entry(struct blob *metadata,
576 blob_write_uint32(metadata, remap_type_inactive_explicit_location);
578 blob_write_uint32(metadata, remap_type_null_ptr);
580 blob_write_uint32(metadata, remap_type_uniform_offset);
583 blob_write_uint32(metadata, offset);
588 write_uniform_remap_tables(struct blob *metadata,
591 blob_write_uint32(metadata, prog->NumUniformRemapTable);
594 write_uniform_remap_table_entry(metadata, prog->data->UniformStorage,
602 blob_write_uint32(metadata, glprog->sh.NumSubroutineUniformRemapTable);
605 write_uniform_remap_table_entry(metadata,
614 read_uniform_remap_table_entry(struct blob_reader *metadata,
624 uint32_t uni_offset = blob_read_uint32(metadata);
630 read_uniform_remap_tables(struct blob_reader *metadata,
633 prog->NumUniformRemapTable = blob_read_uint32(metadata);
640 (enum uniform_remap_type) blob_read_uint32(metadata);
642 read_uniform_remap_table_entry(metadata, prog->data->UniformStorage,
650 glprog->sh.NumSubroutineUniformRemapTable = blob_read_uint32(metadata);
658 (enum uniform_remap_type) blob_read_uint32(metadata);
660 read_uniform_remap_table_entry(metadata,
687 write_hash_table(struct blob *metadata, struct string_to_uint_map *hash)
692 whte.blob = metadata;
695 offset = metadata->size;
698 blob_write_uint32 (metadata, 0);
703 blob_overwrite_uint32 (metadata, offset, whte.num_entries);
707 read_hash_table(struct blob_reader *metadata, struct string_to_uint_map *hash)
713 num_entries = blob_read_uint32 (metadata);
716 key = blob_read_string(metadata);
717 value = blob_read_uint32(metadata);
724 write_hash_tables(struct blob *metadata, struct gl_shader_program *prog)
726 write_hash_table(metadata, prog->AttributeBindings);
727 write_hash_table(metadata, prog->FragDataBindings);
728 write_hash_table(metadata, prog->FragDataIndexBindings);
732 read_hash_tables(struct blob_reader *metadata, struct gl_shader_program *prog)
734 read_hash_table(metadata, prog->AttributeBindings);
735 read_hash_table(metadata, prog->FragDataBindings);
736 read_hash_table(metadata, prog->FragDataIndexBindings);
740 write_shader_subroutine_index(struct blob *metadata,
749 blob_write_uint32(metadata, j);
774 write_program_resource_data(struct blob *metadata,
785 encode_type_to_blob(metadata, var->type);
786 encode_type_to_blob(metadata, var->interface_type);
787 encode_type_to_blob(metadata, var->outermost_struct_type);
789 blob_write_string(metadata, var->name);
795 blob_write_bytes(metadata, ((char *)var) + s_var_ptrs,
803 blob_write_uint32(metadata, i);
812 blob_write_uint32(metadata, i);
827 blob_write_uint32(metadata, uniform_not_remapped);
831 blob_write_uint32(metadata, i);
836 blob_write_uint32(metadata, uniform_remapped);
837 blob_write_uint32(metadata, ((gl_uniform_storage *)res->Data)->remap_location);
844 blob_write_uint32(metadata, i);
853 blob_write_uint32(metadata, i);
862 blob_write_uint32(metadata, i);
875 write_shader_subroutine_index(metadata, sh, res);
883 read_program_resource_data(struct blob_reader *metadata,
894 var->type = decode_type_from_blob(metadata);
895 var->interface_type = decode_type_from_blob(metadata);
896 var->outermost_struct_type = decode_type_from_blob(metadata);
898 var->name = ralloc_strdup(prog, blob_read_string(metadata));
903 blob_copy_bytes(metadata, ((uint8_t *) var) + s_var_ptrs,
910 res->Data = &prog->data->UniformBlocks[blob_read_uint32(metadata)];
913 res->Data = &prog->data->ShaderStorageBlocks[blob_read_uint32(metadata)];
923 enum uniform_type type = (enum uniform_type) blob_read_uint32(metadata);
925 res->Data = &prog->data->UniformStorage[blob_read_uint32(metadata)];
927 res->Data = prog->UniformRemapTable[blob_read_uint32(metadata)];
932 res->Data = &prog->data->AtomicBuffers[blob_read_uint32(metadata)];
936 sh.LinkedTransformFeedback->Buffers[blob_read_uint32(metadata)];
940 sh.LinkedTransformFeedback->Varyings[blob_read_uint32(metadata)];
951 &sh->Program->sh.SubroutineFunctions[blob_read_uint32(metadata)];
959 write_program_resource_list(struct blob *metadata,
962 blob_write_uint32(metadata, prog->data->NumProgramResourceList);
965 blob_write_uint32(metadata, prog->data->ProgramResourceList[i].Type);
966 write_program_resource_data(metadata, prog,
968 blob_write_bytes(metadata,
975 read_program_resource_list(struct blob_reader *metadata,
978 prog->data->NumProgramResourceList = blob_read_uint32(metadata);
985 prog->data->ProgramResourceList[i].Type = blob_read_uint32(metadata);
986 read_program_resource_data(metadata, prog,
988 blob_copy_bytes(metadata,
995 write_shader_parameters(struct blob *metadata,
998 blob_write_uint32(metadata, params->NumParameters);
1003 blob_write_uint32(metadata, param->Type);
1004 blob_write_string(metadata, param->Name);
1005 blob_write_uint32(metadata, param->Size);
1006 blob_write_uint32(metadata, param->Padded);
1007 blob_write_uint32(metadata, param->DataType);
1008 blob_write_bytes(metadata, param->StateIndexes,
1014 blob_write_bytes(metadata, params->ParameterValues,
1017 blob_write_uint32(metadata, params->StateFlags);
1021 read_shader_parameters(struct blob_reader *metadata,
1026 uint32_t num_parameters = blob_read_uint32(metadata);
1030 gl_register_file type = (gl_register_file) blob_read_uint32(metadata);
1031 const char *name = blob_read_string(metadata);
1032 unsigned size = blob_read_uint32(metadata);
1033 bool padded = blob_read_uint32(metadata);
1034 unsigned data_type = blob_read_uint32(metadata);
1035 blob_copy_bytes(metadata, (uint8_t *) state_indexes,
1044 blob_copy_bytes(metadata, (uint8_t *) params->ParameterValues,
1047 params->StateFlags = blob_read_uint32(metadata);
1051 write_shader_metadata(struct blob *metadata, gl_linked_shader *shader)
1057 blob_write_uint64(metadata, glprog->DualSlotInputs);
1058 blob_write_bytes(metadata, glprog->TexturesUsed,
1060 blob_write_uint64(metadata, glprog->SamplersUsed);
1062 blob_write_bytes(metadata, glprog->SamplerUnits,
1064 blob_write_bytes(metadata, 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,
1072 blob_write_bytes(metadata, glprog->sh.ImageUnits,
1077 blob_write_uint32(metadata, glprog->sh.NumBindlessSamplers);
1078 blob_write_uint32(metadata, glprog->sh.HasBoundBindlessSampler);
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);
1087 blob_write_bytes(metadata, &glprog->sh.BindlessImages[i],
1091 blob_write_bytes(metadata, &glprog->sh.fs.BlendSupport,
1094 write_shader_parameters(metadata, glprog->Parameters);
1098 blob_write_uint32(metadata, (uint32_t)glprog->driver_cache_blob_size);
1100 blob_write_bytes(metadata, glprog->driver_cache_blob,
1106 read_shader_metadata(struct blob_reader *metadata,
1112 glprog->DualSlotInputs = blob_read_uint64(metadata);
1113 blob_copy_bytes(metadata, (uint8_t *) glprog->TexturesUsed,
1115 glprog->SamplersUsed = blob_read_uint64(metadata);
1117 blob_copy_bytes(metadata, (uint8_t *) glprog->SamplerUnits,
1119 blob_copy_bytes(metadata, (uint8_t *) 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,
1127 blob_copy_bytes(metadata, (uint8_t *) glprog->sh.ImageUnits,
1132 glprog->sh.NumBindlessSamplers = blob_read_uint32(metadata);
1133 glprog->sh.HasBoundBindlessSampler = blob_read_uint32(metadata);
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);
1153 blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.BindlessImages[i],
1158 blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.fs.BlendSupport,
1162 read_shader_parameters(metadata, glprog->Parameters);
1164 glprog->driver_cache_blob_size = (size_t)blob_read_uint32(metadata);
1168 blob_copy_bytes(metadata, glprog->driver_cache_blob,
1185 struct blob_reader *metadata)
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));
1207 blob_copy_bytes(metadata, ((uint8_t *) &glprog->info) + s_info_ptrs,