Lines Matching defs:shader
122 struct ureg_program *shader;
130 shader = ureg_create(PIPE_SHADER_VERTEX);
131 if (!shader)
136 scale = ureg_imm2f(shader,
140 vrect = ureg_DECL_vs_input(shader, VS_I_RECT);
141 vpos = ureg_DECL_vs_input(shader, VS_I_VPOS);
142 block_num = ureg_DECL_vs_input(shader, VS_I_BLOCK_NUM);
144 tmp = ureg_DECL_temporary(shader);
146 o_vpos = ureg_DECL_output(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS);
149 o_vtex[i] = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTEX + i);
163 ureg_ADD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XY), vpos, vrect);
164 ureg_MUL(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_XY), ureg_src(tmp), scale);
165 ureg_MOV(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_ZW), ureg_imm1f(shader, 1.0f));
167 ureg_MUL(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XW), ureg_scalar(block_num, TGSI_SWIZZLE_X),
168 ureg_imm1f(shader, 1.0f / zscan->blocks_per_line));
170 ureg_FRC(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_X));
171 ureg_FLR(shader, ureg_writemask(tmp, TGSI_WRITEMASK_W), ureg_src(tmp));
174 ureg_ADD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_X), ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_Y),
175 ureg_imm1f(shader, 1.0f / (zscan->blocks_per_line * VL_BLOCK_WIDTH)
178 ureg_MAD(shader, ureg_writemask(o_vtex[i], TGSI_WRITEMASK_X), vrect,
179 ureg_imm1f(shader, 1.0f / zscan->blocks_per_line), ureg_src(tmp));
180 ureg_MOV(shader, ureg_writemask(o_vtex[i], TGSI_WRITEMASK_Y), vrect);
181 ureg_MOV(shader, ureg_writemask(o_vtex[i], TGSI_WRITEMASK_Z), vpos);
182 ureg_MUL(shader, ureg_writemask(o_vtex[i], TGSI_WRITEMASK_W), ureg_src(tmp),
183 ureg_imm1f(shader, (float)zscan->blocks_per_line / zscan->blocks_total));
186 ureg_release_temporary(shader, tmp);
187 ureg_END(shader);
191 return ureg_create_shader_and_destroy(shader, zscan->pipe);
197 struct ureg_program *shader;
207 shader = ureg_create(PIPE_SHADER_FRAGMENT);
208 if (!shader)
215 vtex[i] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTEX + i, TGSI_INTERPOLATE_LINEAR);
217 samp_src = ureg_DECL_sampler(shader, 0);
218 samp_scan = ureg_DECL_sampler(shader, 1);
219 samp_quant = ureg_DECL_sampler(shader, 2);
222 tmp[i] = ureg_DECL_temporary(shader);
223 quant = ureg_DECL_temporary(shader);
225 fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0);
233 ureg_TEX(shader, ureg_writemask(tmp[i], TGSI_WRITEMASK_X), TGSI_TEXTURE_2D, vtex[i], samp_scan);
236 ureg_MOV(shader, ureg_writemask(tmp[i], TGSI_WRITEMASK_Y), ureg_scalar(vtex[i], TGSI_SWIZZLE_W));
239 ureg_TEX(shader, ureg_writemask(tmp[0], TGSI_WRITEMASK_X << i), TGSI_TEXTURE_2D, ureg_src(tmp[i]), samp_src);
240 ureg_TEX(shader, ureg_writemask(quant, TGSI_WRITEMASK_X << i), TGSI_TEXTURE_3D, vtex[i], samp_quant);
243 ureg_MUL(shader, quant, ureg_src(quant), ureg_imm1f(shader, 16.0f));
244 ureg_MUL(shader, fragment, ureg_src(tmp[0]), ureg_src(quant));
247 ureg_release_temporary(shader, tmp[i]);
248 ureg_END(shader);
253 return ureg_create_shader_and_destroy(shader, zscan->pipe);