Lines Matching defs:shaders
131 * any shaders in a pipeline access, at the time that a draw or
133 * However, if none of the shaders in a pipeline statically use any
255 struct tu_compiled_shaders *shaders;
1030 /* We do this after linking shaders in order to know whether PrimID
1704 tu6_emit_xs_config(cs, stage, builder->shaders->variants[stage]);
1714 const struct ir3_shader_variant *vs = builder->shaders->variants[MESA_SHADER_VERTEX];
1716 const struct ir3_shader_variant *hs = builder->shaders->variants[MESA_SHADER_TESS_CTRL];
1717 const struct ir3_shader_variant *ds = builder->shaders->variants[MESA_SHADER_TESS_EVAL];
1718 const struct ir3_shader_variant *gs = builder->shaders->variants[MESA_SHADER_GEOMETRY];
1719 const struct ir3_shader_variant *fs = builder->shaders->variants[MESA_SHADER_FRAGMENT];
1723 bool multi_pos_output = builder->shaders->multi_pos_output;
1735 const struct ir3_shader_variant *xs = builder->shaders->variants[stage];
2350 for (uint32_t i = 0; i < ARRAY_SIZE(builder->shaders->variants); i++) {
2351 if (builder->shaders->variants[i]) {
2352 size += builder->shaders->variants[i]->info.size / 4;
2359 for (unsigned i = 0; i < ARRAY_SIZE(builder->shaders->variants); i++) {
2360 struct ir3_shader_variant *variant = builder->shaders->variants[i];
2488 /* this expects to get enough alignment because shaders are allocated first
2516 nir_shader **shaders, unsigned shaders_count)
2521 if (!shaders[stage])
2524 nir_shader *producer = shaders[stage];
2680 struct tu_compiled_shaders *shaders =
2683 for (unsigned i = 0; i < ARRAY_SIZE(shaders->variants); i++)
2684 ralloc_free(shaders->variants[i]);
2686 vk_pipeline_cache_object_finish(&shaders->base);
2687 vk_free(&object->device->alloc, shaders);
2700 VK_MULTIALLOC_DECL(&ma, struct tu_compiled_shaders, shaders, 1);
2708 vk_pipeline_cache_object_init(&dev->vk, &shaders->base,
2711 return shaders;
2718 struct tu_compiled_shaders *shaders =
2721 blob_write_bytes(blob, shaders->push_consts, sizeof(shaders->push_consts));
2722 blob_write_uint8(blob, shaders->active_desc_sets);
2723 blob_write_uint8(blob, shaders->multi_pos_output);
2725 for (unsigned i = 0; i < ARRAY_SIZE(shaders->variants); i++) {
2726 if (shaders->variants[i]) {
2728 ir3_store_variant(blob, shaders->variants[i]);
2743 struct tu_compiled_shaders *shaders =
2746 if (!shaders)
2749 blob_copy_bytes(blob, shaders->push_consts, sizeof(shaders->push_consts));
2750 shaders->active_desc_sets = blob_read_uint8(blob);
2751 shaders->multi_pos_output = blob_read_uint8(blob);
2753 for (unsigned i = 0; i < ARRAY_SIZE(shaders->variants); i++) {
2756 shaders->variants[i] = ir3_retrieve_variant(blob, dev->compiler, NULL);
2760 return &shaders->base;
2779 struct tu_compiled_shaders *shaders)
2782 vk_pipeline_cache_add_object(cache, &shaders->base);
2865 struct tu_shader *shaders[ARRAY_SIZE(nir)] = { NULL };
2945 shaders[stage] = shader;
2950 struct tu_shader *last_shader = shaders[MESA_SHADER_GEOMETRY];
2952 last_shader = shaders[MESA_SHADER_TESS_EVAL];
2954 last_shader = shaders[MESA_SHADER_VERTEX];
2971 shaders[MESA_SHADER_VERTEX]->multi_pos_output;
2974 stage < ARRAY_SIZE(shaders); stage++) {
2975 if (!shaders[stage])
2981 ir3_shader_create_variant(shaders[stage]->ir3_shader, &ir3_key,
2986 compiled_shaders->push_consts[stage] = shaders[stage]->push_consts;
2996 stage < ARRAY_SIZE(shaders); stage++) {
2997 if (!shaders[stage])
3005 ir3_shader_create_variant(shaders[stage]->ir3_shader, &ir3_key,
3018 if (shaders[stage]) {
3019 tu_shader_destroy(builder->device, shaders[stage], builder->alloc);
3048 builder->shaders = compiled_shaders;
3074 if (shaders[stage]) {
3075 tu_shader_destroy(builder->device, shaders[stage], builder->alloc);
3253 for (unsigned i = 0; i < ARRAY_SIZE(builder->shaders->variants); i++) {
3254 if (!builder->shaders->variants[i])
3258 &builder->shaders->push_consts[i],
3259 builder->shaders->variants[i]);
3269 const struct ir3_shader_variant *vs = builder->shaders->variants[MESA_SHADER_VERTEX];
3325 const struct ir3_shader_variant *hs = builder->shaders->variants[MESA_SHADER_TESS_CTRL];
3578 if (builder->shaders->variants[MESA_SHADER_FRAGMENT]) {
3579 const struct ir3_shader_variant *fs = builder->shaders->variants[MESA_SHADER_FRAGMENT];
3786 /* compile and upload shaders */
3802 tu_upload_variant(*pipeline, builder->shaders->variants[i]);
3814 for (uint32_t i = 0; i < ARRAY_SIZE(builder->shaders->variants); i++) {
3815 if (builder->shaders->variants[i]) {
3816 pvtmem_size = MAX2(pvtmem_size, builder->shaders->variants[i]->pvtmem_size);
3817 if (!builder->shaders->variants[i]->pvtmem_per_wave)
3853 if (builder->shaders)
3854 vk_pipeline_cache_object_unref(&builder->shaders->base);