Lines Matching refs:reg_maps

393 static void shader_record_register_usage(struct wined3d_shader *shader, struct wined3d_shader_reg_maps *reg_maps,
400 reg_maps->texcoord |= 1 << reg->idx[0].offset;
402 reg_maps->address |= 1 << reg->idx[0].offset;
406 reg_maps->temporary |= 1 << reg->idx[0].offset;
429 reg_maps->input_registers |= 1 << reg->idx[0].offset;
434 reg_maps->fog = 1;
441 reg_maps->vpos = 1;
443 reg_maps->usesfacing = 1;
450 if (reg->idx[0].offset < reg_maps->min_rel_offset)
451 reg_maps->min_rel_offset = reg->idx[0].offset;
452 if (reg->idx[0].offset > reg_maps->max_rel_offset)
453 reg_maps->max_rel_offset = reg->idx[0].offset;
454 reg_maps->usesrelconstF = TRUE;
458 set_bitmap_bit(reg_maps->constf, reg->idx[0].offset);
463 reg_maps->integer_constants |= (1 << reg->idx[0].offset);
467 reg_maps->boolean_constants |= (1 << reg->idx[0].offset);
471 reg_maps->rt_mask |= (1 << reg->idx[0].offset);
503 struct wined3d_shader_reg_maps *reg_maps, struct wined3d_shader_signature_element *input_signature,
511 memset(reg_maps, 0, sizeof(*reg_maps));
512 reg_maps->min_rel_offset = ~0U;
515 reg_maps->shader_version = shader_version;
517 reg_maps->constf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
518 sizeof(*reg_maps->constf) * ((constf_size + 31) / 32));
519 if (!reg_maps->constf)
548 reg_maps->input_registers |= 1 << semantic->reg.reg.idx[0].offset;
554 reg_maps->output_registers |= 1 << semantic->reg.reg.idx[0].offset;
557 reg_maps->fog = 1;
562 reg_maps->sampler_type[semantic->reg.reg.idx[0].offset] = semantic->sampler_type;
576 reg_maps->cb_sizes[reg->idx[0].offset] = reg->idx[1].offset;
642 reg_maps->local_int_consts |= (1 << lconst->idx);
653 reg_maps->local_bool_consts |= (1 << lconst->idx);
658 reg_maps->labels |= 1 << ins.src[0].reg.idx[0].offset;
674 shader_record_register_usage(shader, reg_maps, &ins.dst[i].reg, shader_version.type);
689 reg_maps->output_registers |= 1 << 10;
695 reg_maps->output_registers |= 1 << 11;
701 reg_maps->output_registers |= 1 << 11;
712 if (reg_maps->output_registers & (1 << idx))
718 reg_maps->output_registers |= 1 << idx;
727 reg_maps->texcoord_mask[idx] |= ins.dst[i].write_mask;
728 if (reg_maps->output_registers & (1 << idx))
734 reg_maps->output_registers |= 1 << idx;
792 reg_maps->sampler_type[sampler_code] = WINED3DSTT_2D;
798 reg_maps->bumpmat |= 1 << ins.dst[i].reg.idx[0].offset;
801 reg_maps->luminanceparams |= 1 << ins.dst[i].reg.idx[0].offset;
807 reg_maps->bumpmat |= 1 << ins.dst[i].reg.idx[0].offset;
811 if (ins.handler_idx == WINED3DSIH_NRM) reg_maps->usesnrm = 1;
812 else if (ins.handler_idx == WINED3DSIH_DSY) reg_maps->usesdsy = 1;
813 else if (ins.handler_idx == WINED3DSIH_DSX) reg_maps->usesdsx = 1;
814 else if (ins.handler_idx == WINED3DSIH_TEXLDD) reg_maps->usestexldd = 1;
815 else if (ins.handler_idx == WINED3DSIH_TEXLDL) reg_maps->usestexldl = 1;
816 else if (ins.handler_idx == WINED3DSIH_MOVA) reg_maps->usesmova = 1;
817 else if (ins.handler_idx == WINED3DSIH_IFC) reg_maps->usesifc = 1;
818 else if (ins.handler_idx == WINED3DSIH_CALL) reg_maps->usescall = 1;
819 else if (ins.handler_idx == WINED3DSIH_POW) reg_maps->usespow = 1;
832 shader_record_register_usage(shader, reg_maps, &ins.predicate->reg, shader_version.type);
839 shader_record_register_usage(shader, reg_maps, &ins.src[i].reg, shader_version.type);
843 shader_record_register_usage(shader, reg_maps, &reg, shader_version.type);
859 reg_maps->loop_depth = max_loop_depth;
864 reg_maps->rt_mask |= (1 << 0);
871 unsigned int shader_find_free_input_register(const struct wined3d_shader_reg_maps *reg_maps, unsigned int max)
875 map &= reg_maps->shader_version.major < 3 ? ~reg_maps->texcoord : ~reg_maps->input_registers;
1247 const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx)
1266 ctx.reg_maps = reg_maps;
1506 HeapFree(GetProcessHeap(), 0, shader->reg_maps.constf);
1654 struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps;
1689 reg_maps, shader->input_signature, shader->output_signature,
1693 if (reg_maps->shader_version.type != type)
1695 WARN("Wrong shader type %d.\n", reg_maps->shader_version.type);
1698 if (reg_maps->shader_version.major > max_version)
1700 WARN("Shader version %d not supported by this D3D API version.\n", reg_maps->shader_version.major);
1718 if (reg_maps->shader_version.major > backend_version)
1721 reg_maps->shader_version.major, reg_maps->shader_version.minor);
1859 WORD map = shader->reg_maps.input_registers;
1878 DWORD shader_version = WINED3D_SHADER_VERSION(shader->reg_maps.shader_version.major,
1879 shader->reg_maps.shader_version.minor);
1937 shader->reg_maps.shader_version.major,
1938 shader->reg_maps.shader_version.minor);
1946 struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps;
1964 map = reg_maps->input_registers;
1980 reg_maps->output_registers |= 1 << e->register_idx;
1987 shader->load_local_constsF = (reg_maps->usesrelconstF && !list_empty(&shader->constantsF)) ||
1995 DWORD shader_version = WINED3D_SHADER_VERSION(shader->reg_maps.shader_version.major,
1996 shader->reg_maps.shader_version.minor);
2012 shader->reg_maps.shader_version.major,
2013 shader->reg_maps.shader_version.minor);
2063 if (shader->reg_maps.shader_version.major == 1
2064 && shader->reg_maps.shader_version.minor <= 3)
2079 enum wined3d_sampler_texture_type sampler_type = shader->reg_maps.sampler_type[i];
2117 if (shader->reg_maps.shader_version.major == 1
2118 && shader->reg_maps.shader_version.minor <= 4)
2124 if (!shader->reg_maps.sampler_type[i])
2153 if (!shader->reg_maps.sampler_type[i])
2171 if (shader->reg_maps.shader_version.major >= 3)
2218 DWORD shader_version = WINED3D_SHADER_VERSION(shader->reg_maps.shader_version.major,
2219 shader->reg_maps.shader_version.minor);
2284 shader->reg_maps.shader_version.major,
2285 shader->reg_maps.shader_version.minor);
2359 struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps;
2360 enum wined3d_sampler_texture_type *sampler_type = reg_maps->sampler_type;
2363 if (reg_maps->shader_version.major != 1) return;