Lines Matching refs:shader

53 calc_position(struct vl_mc *r, struct ureg_program *shader, struct ureg_src block_scale)
59 vrect = ureg_DECL_vs_input(shader, VS_I_RECT);
60 vpos = ureg_DECL_vs_input(shader, VS_I_VPOS);
62 t_vpos = ureg_DECL_temporary(shader);
64 o_vpos = ureg_DECL_output(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS);
73 ureg_ADD(shader, ureg_writemask(t_vpos, TGSI_WRITEMASK_XY), vpos, vrect);
74 ureg_MUL(shader, ureg_writemask(t_vpos, TGSI_WRITEMASK_XY), ureg_src(t_vpos), block_scale);
75 ureg_MOV(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_XY), ureg_src(t_vpos));
76 ureg_MOV(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_ZW), ureg_imm1f(shader, 1.0f));
82 calc_line(struct ureg_program *shader)
87 tmp = ureg_DECL_temporary(shader);
89 pos = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS, TGSI_INTERPOLATE_LINEAR);
94 ureg_MUL(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), pos, ureg_imm1f(shader, 0.5f));
95 ureg_FRC(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), ureg_src(tmp));
96 ureg_SGE(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), ureg_src(tmp), ureg_imm1f(shader, 0.5f));
104 struct ureg_program *shader;
111 shader = ureg_create(TGSI_PROCESSOR_VERTEX);
112 if (!shader)
115 vmv[0] = ureg_DECL_vs_input(shader, VS_I_MV_TOP);
116 vmv[1] = ureg_DECL_vs_input(shader, VS_I_MV_BOTTOM);
118 t_vpos = calc_position(r, shader, ureg_imm2f(shader,
123 o_vmv[0] = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTOP);
124 o_vmv[1] = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_VBOTTOM);
137 mv_scale = ureg_imm4f(shader,
144 ureg_MAD(shader, ureg_writemask(o_vmv[i], TGSI_WRITEMASK_XY), mv_scale, vmv[i], ureg_src(t_vpos));
145 ureg_MUL(shader, ureg_writemask(o_vmv[i], TGSI_WRITEMASK_ZW), mv_scale, vmv[i]);
148 ureg_release_temporary(shader, t_vpos);
150 ureg_END(shader);
152 return ureg_create_shader_and_destroy(shader, r->pipe);
162 struct ureg_program *shader;
168 shader = ureg_create(TGSI_PROCESSOR_FRAGMENT);
169 if (!shader)
172 tc[0] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTOP, TGSI_INTERPOLATE_LINEAR);
173 tc[1] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VBOTTOM, TGSI_INTERPOLATE_LINEAR);
175 sampler = ureg_DECL_sampler(shader, 0);
176 ref = ureg_DECL_temporary(shader);
178 fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0);
180 field = calc_line(shader);
194 ureg_CMP(shader, ureg_writemask(ref, TGSI_WRITEMASK_XYZ),
197 ureg_CMP(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W),
201 ureg_IF(shader, ureg_scalar(ureg_src(ref), TGSI_SWIZZLE_Z), &label);
203 ureg_MUL(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
204 ureg_src(ref), ureg_imm1f(shader, y_scale));
205 ureg_FLR(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y), ureg_src(ref));
206 ureg_ADD(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
208 ureg_MUL(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
209 ureg_src(ref), ureg_imm1f(shader, 1.0f / y_scale));
211 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
212 ureg_ENDIF(shader);
214 ureg_TEX(shader, ureg_writemask(fragment, TGSI_WRITEMASK_XYZ), TGSI_TEXTURE_2D, ureg_src(ref), sampler);
216 ureg_release_temporary(shader, ref);
218 ureg_release_temporary(shader, field);
219 ureg_END(shader);
221 return ureg_create_shader_and_destroy(shader, r->pipe);
227 struct ureg_program *shader;
240 shader = ureg_create(TGSI_PROCESSOR_VERTEX);
241 if (!shader)
244 vrect = ureg_DECL_vs_input(shader, VS_I_RECT);
245 vpos = ureg_DECL_vs_input(shader, VS_I_VPOS);
247 t_vpos = calc_position(r, shader, ureg_imm2f(shader, scale.x, scale.y));
248 t_vtex = ureg_DECL_temporary(shader);
250 o_vpos = ureg_DECL_output(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS);
251 o_flags = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_FLAGS);
268 vs_callback(callback_priv, r, shader, VS_O_VTEX, t_vpos);
270 ureg_MUL(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_Z),
271 ureg_scalar(vpos, TGSI_SWIZZLE_Z), ureg_imm1f(shader, 0.5f));
272 ureg_MOV(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_W), ureg_imm1f(shader, -1.0f));
275 ureg_IF(shader, ureg_scalar(vpos, TGSI_SWIZZLE_W), &label);
277 ureg_CMP(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_XY),
279 ureg_imm2f(shader, 0.0f, scale.y),
280 ureg_imm2f(shader, -scale.y, 0.0f));
281 ureg_MUL(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Z),
282 ureg_scalar(vpos, TGSI_SWIZZLE_Y), ureg_imm1f(shader, 0.5f));
284 ureg_FRC(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Z), ureg_src(t_vtex));
286 ureg_CMP(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Y),
290 ureg_ADD(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_Y),
293 ureg_CMP(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_W),
295 ureg_imm1f(shader, 0.0f), ureg_imm1f(shader, 1.0f));
297 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
298 ureg_ENDIF(shader);
301 ureg_release_temporary(shader, t_vtex);
302 ureg_release_temporary(shader, t_vpos);
304 ureg_END(shader);
306 return ureg_create_shader_and_destroy(shader, r->pipe);
313 struct ureg_program *shader;
319 shader = ureg_create(TGSI_PROCESSOR_FRAGMENT);
320 if (!shader)
323 flags = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_FLAGS, TGSI_INTERPOLATE_LINEAR);
325 fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0);
327 tmp = calc_line(shader);
338 ureg_SEQ(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y),
341 ureg_IF(shader, ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_Y), &label);
343 ureg_KILP(shader);
345 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
346 ureg_ELSE(shader, &label);
348 fs_callback(callback_priv, r, shader, VS_O_VTEX, tmp);
351 ureg_MAD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XYZ),
352 ureg_src(tmp), ureg_imm1f(shader, scale),
355 ureg_ADD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XYZ),
358 ureg_MUL(shader, ureg_writemask(fragment, TGSI_WRITEMASK_XYZ), ureg_src(tmp), ureg_imm1f(shader, invert ? -1.0f : 1.0f));
359 ureg_MOV(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W), ureg_imm1f(shader, 1.0f));
361 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
362 ureg_ENDIF(shader);
364 ureg_release_temporary(shader, tmp);
366 ureg_END(shader);
368 return ureg_create_shader_and_destroy(shader, r->pipe);