Lines Matching refs:unit
111 } unit[MAX_TEXTURE_COORD_UNITS]; member
280 key->unit[i].enabled = 1; in make_state_key()
283 key->unit[i].source_index = texObj->TargetIndex; in make_state_key()
288 key->unit[i].shadow = (format == GL_DEPTH_COMPONENT || in make_state_key()
292 key->unit[i].ModeRGB = comb->ModeRGB; in make_state_key()
293 key->unit[i].ModeA = comb->ModeA; in make_state_key()
294 key->unit[i].ScaleShiftRGB = comb->ScaleShiftRGB; in make_state_key()
295 key->unit[i].ScaleShiftA = comb->ScaleShiftA; in make_state_key()
296 key->unit[i].NumArgsRGB = comb->NumArgsRGB; in make_state_key()
297 key->unit[i].NumArgsA = comb->NumArgsA; in make_state_key()
299 memcpy(key->unit[i].ArgsRGB, comb->ArgsRGB, sizeof comb->ArgsRGB); in make_state_key()
300 memcpy(key->unit[i].ArgsA, comb->ArgsA, sizeof comb->ArgsA); in make_state_key()
326 keySize = sizeof(*key) - sizeof(key->unit) in make_state_key()
327 + key->nr_enabled_units * sizeof(key->unit[0]); in make_state_key()
379 GLuint src, GLuint unit) in get_source() argument
386 return new(p->mem_ctx) ir_dereference_variable(p->src_texture[unit]); in get_source()
403 var->data.max_array_access = MAX2(var->data.max_array_access, (int)unit); in get_source()
405 new(p->mem_ctx) ir_constant(unit)); in get_source()
433 GLuint unit, in emit_combine_source() argument
439 src = get_source(p, source, unit); in emit_combine_source()
468 static GLboolean args_match( const struct state_key *key, GLuint unit ) in args_match() argument
470 GLuint i, numArgs = key->unit[unit].NumArgsRGB; in args_match()
473 if (key->unit[unit].ArgsA[i].Source != key->unit[unit].ArgsRGB[i].Source) in args_match()
476 switch (key->unit[unit].ArgsA[i].Operand) { in args_match()
478 switch (key->unit[unit].ArgsRGB[i].Operand) { in args_match()
487 switch (key->unit[unit].ArgsRGB[i].Operand) { in args_match()
514 GLuint unit, in emit_combine() argument
526 src[i] = emit_combine_source( p, unit, opt[i].Source, opt[i].Operand ); in emit_combine()
589 emit_texenv(texenv_fragment_program *p, GLuint unit) in emit_texenv() argument
595 if (!key->unit[unit].enabled) { in emit_texenv()
599 switch (key->unit[unit].ModeRGB) { in emit_texenv()
601 alpha_shift = key->unit[unit].ScaleShiftA; in emit_texenv()
609 rgb_shift = key->unit[unit].ScaleShiftRGB; in emit_texenv()
610 alpha_shift = key->unit[unit].ScaleShiftA; in emit_texenv()
619 else if (need_saturate(key->unit[unit].ModeRGB)) in emit_texenv()
626 else if (need_saturate(key->unit[unit].ModeA)) in emit_texenv()
637 if (key->unit[unit].ModeRGB == key->unit[unit].ModeA && in emit_texenv()
638 args_match(key, unit)) { in emit_texenv()
639 val = emit_combine(p, unit, in emit_texenv()
640 key->unit[unit].NumArgsRGB, in emit_texenv()
641 key->unit[unit].ModeRGB, in emit_texenv()
642 key->unit[unit].ArgsRGB); in emit_texenv()
649 else if (key->unit[unit].ModeRGB == TEXENV_MODE_DOT3_RGBA_EXT || in emit_texenv()
650 key->unit[unit].ModeRGB == TEXENV_MODE_DOT3_RGBA) { in emit_texenv()
651 ir_rvalue *val = emit_combine(p, unit, in emit_texenv()
652 key->unit[unit].NumArgsRGB, in emit_texenv()
653 key->unit[unit].ModeRGB, in emit_texenv()
654 key->unit[unit].ArgsRGB); in emit_texenv()
664 val = emit_combine(p, unit, in emit_texenv()
665 key->unit[unit].NumArgsRGB, in emit_texenv()
666 key->unit[unit].ModeRGB, in emit_texenv()
667 key->unit[unit].ArgsRGB); in emit_texenv()
673 val = emit_combine(p, unit, in emit_texenv()
674 key->unit[unit].NumArgsA, in emit_texenv()
675 key->unit[unit].ModeA, in emit_texenv()
676 key->unit[unit].ArgsA); in emit_texenv()
715 static void load_texture( texenv_fragment_program *p, GLuint unit ) in load_texture() argument
719 if (p->src_texture[unit]) in load_texture()
722 const GLuint texTarget = p->state->unit[unit].source_index; in load_texture()
725 if (!(p->state->inputs_available & (VARYING_BIT_TEX0 << unit))) { in load_texture()
726 texcoord = get_current_attrib(p, VERT_ATTRIB_TEX0 + unit); in load_texture()
731 ir_rvalue *index = new(p->mem_ctx) ir_constant(unit); in load_texture()
733 tc_array->data.max_array_access = MAX2(tc_array->data.max_array_access, (int)unit); in load_texture()
736 if (!p->state->unit[unit].enabled) { in load_texture()
737 p->src_texture[unit] = p->make_temp(glsl_type::vec4_type, in load_texture()
739 p->emit(p->src_texture[unit]); in load_texture()
741 p->emit(assign(p->src_texture[unit], new(p->mem_ctx) ir_constant(0.0f))); in load_texture()
750 if (p->state->unit[unit].shadow) in load_texture()
757 if (p->state->unit[unit].shadow) in load_texture()
764 if (p->state->unit[unit].shadow) in load_texture()
771 if (p->state->unit[unit].shadow) in load_texture()
778 if (p->state->unit[unit].shadow) in load_texture()
785 assert(!p->state->unit[unit].shadow); in load_texture()
790 if (p->state->unit[unit].shadow) in load_texture()
797 assert(!p->state->unit[unit].shadow); in load_texture()
803 p->src_texture[unit] = p->make_temp(glsl_type::vec4_type, in load_texture()
809 char *sampler_name = ralloc_asprintf(p->mem_ctx, "sampler_%d", unit); in load_texture()
819 sampler->data.binding = unit; in load_texture()
826 if (p->state->unit[unit].shadow) { in load_texture()
837 p->emit(assign(p->src_texture[unit], tex)); in load_texture()
842 GLuint src, GLuint unit) in load_texenv_source() argument
846 load_texture(p, unit); in load_texenv_source()
871 load_texunit_sources( texenv_fragment_program *p, GLuint unit ) in load_texunit_sources() argument
876 for (i = 0; i < key->unit[unit].NumArgsRGB; i++) { in load_texunit_sources()
877 load_texenv_source( p, key->unit[unit].ArgsRGB[i].Source, unit ); in load_texunit_sources()
880 for (i = 0; i < key->unit[unit].NumArgsA; i++) { in load_texunit_sources()
881 load_texenv_source( p, key->unit[unit].ArgsA[i].Source, unit ); in load_texunit_sources()
974 GLuint unit; in emit_instructions() local
981 for (unit = 0; unit < key->nr_enabled_units; unit++) in emit_instructions()
982 if (key->unit[unit].enabled) { in emit_instructions()
983 load_texunit_sources(p, unit); in emit_instructions()
988 for (unit = 0; unit < key->nr_enabled_units; unit++) { in emit_instructions()
989 if (key->unit[unit].enabled) { in emit_instructions()
990 p->src_previous = emit_texenv(p, unit); in emit_instructions()
1035 unsigned int unit; in create_new_program() local
1079 for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) in create_new_program()
1080 p.src_texture[unit] = NULL; in create_new_program()