Lines Matching full: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 pipe_screen *screen, struct ureg_program *shader)
87 tmp = ureg_DECL_temporary(shader);
90 pos = ureg_DECL_system_value(shader, TGSI_SEMANTIC_POSITION, 0);
92 pos = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS,
98 ureg_MUL(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), pos, ureg_imm1f(shader, 0.5f));
99 ureg_FRC(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), ureg_src(tmp));
100 ureg_SGE(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y), ureg_src(tmp), ureg_imm1f(shader, 0.5f));
108 struct ureg_program *shader;
115 shader = ureg_create(PIPE_SHADER_VERTEX);
116 if (!shader)
119 vmv[0] = ureg_DECL_vs_input(shader, VS_I_MV_TOP);
120 vmv[1] = ureg_DECL_vs_input(shader, VS_I_MV_BOTTOM);
122 t_vpos = calc_position(r, shader, ureg_imm2f(shader,
127 o_vmv[0] = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTOP);
128 o_vmv[1] = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_VBOTTOM);
141 mv_scale = ureg_imm4f(shader,
148 ureg_MAD(shader, ureg_writemask(o_vmv[i], TGSI_WRITEMASK_XY), mv_scale, vmv[i], ureg_src(t_vpos));
149 ureg_MUL(shader, ureg_writemask(o_vmv[i], TGSI_WRITEMASK_ZW), mv_scale, vmv[i]);
152 ureg_release_temporary(shader, t_vpos);
154 ureg_END(shader);
156 return ureg_create_shader_and_destroy(shader, r->pipe);
166 struct ureg_program *shader;
172 shader = ureg_create(PIPE_SHADER_FRAGMENT);
173 if (!shader)
176 tc[0] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTOP, TGSI_INTERPOLATE_LINEAR);
177 tc[1] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VBOTTOM, TGSI_INTERPOLATE_LINEAR);
179 sampler = ureg_DECL_sampler(shader, 0);
180 ref = ureg_DECL_temporary(shader);
182 fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0);
184 field = calc_line(r->pipe->screen, shader);
198 ureg_CMP(shader, ureg_writemask(ref, TGSI_WRITEMASK_XYZ),
201 ureg_CMP(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W),
205 ureg_IF(shader, ureg_scalar(ureg_src(ref), TGSI_SWIZZLE_Z), &label);
207 ureg_MUL(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
208 ureg_src(ref), ureg_imm1f(shader, y_scale));
209 ureg_FLR(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y), ureg_src(ref));
210 ureg_ADD(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
212 ureg_MUL(shader, ureg_writemask(ref, TGSI_WRITEMASK_Y),
213 ureg_src(ref), ureg_imm1f(shader, 1.0f / y_scale));
215 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
216 ureg_ENDIF(shader);
218 ureg_TEX(shader, ureg_writemask(fragment, TGSI_WRITEMASK_XYZ), TGSI_TEXTURE_2D, ureg_src(ref), sampler);
220 ureg_release_temporary(shader, ref);
222 ureg_release_temporary(shader, field);
223 ureg_END(shader);
225 return ureg_create_shader_and_destroy(shader, r->pipe);
231 struct ureg_program *shader;
244 shader = ureg_create(PIPE_SHADER_VERTEX);
245 if (!shader)
248 vrect = ureg_DECL_vs_input(shader, VS_I_RECT);
249 vpos = ureg_DECL_vs_input(shader, VS_I_VPOS);
251 t_vpos = calc_position(r, shader, ureg_imm2f(shader, scale.x, scale.y));
252 t_vtex = ureg_DECL_temporary(shader);
254 o_vpos = ureg_DECL_output(shader, TGSI_SEMANTIC_POSITION, VS_O_VPOS);
255 o_flags = ureg_DECL_output(shader, TGSI_SEMANTIC_GENERIC, VS_O_FLAGS);
272 vs_callback(callback_priv, r, shader, VS_O_VTEX, t_vpos);
274 ureg_MUL(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_Z),
275 ureg_scalar(vpos, TGSI_SWIZZLE_Z), ureg_imm1f(shader, 0.5f));
276 ureg_MOV(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_W), ureg_imm1f(shader, -1.0f));
279 ureg_IF(shader, ureg_scalar(vpos, TGSI_SWIZZLE_W), &label);
281 ureg_CMP(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_XY),
283 ureg_imm2f(shader, 0.0f, scale.y),
284 ureg_imm2f(shader, -scale.y, 0.0f));
285 ureg_MUL(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Z),
286 ureg_scalar(vpos, TGSI_SWIZZLE_Y), ureg_imm1f(shader, 0.5f));
288 ureg_FRC(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Z), ureg_src(t_vtex));
290 ureg_CMP(shader, ureg_writemask(t_vtex, TGSI_WRITEMASK_Y),
294 ureg_ADD(shader, ureg_writemask(o_vpos, TGSI_WRITEMASK_Y),
297 ureg_CMP(shader, ureg_writemask(o_flags, TGSI_WRITEMASK_W),
299 ureg_imm1f(shader, 0.0f), ureg_imm1f(shader, 1.0f));
301 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
302 ureg_ENDIF(shader);
305 ureg_release_temporary(shader, t_vtex);
306 ureg_release_temporary(shader, t_vpos);
308 ureg_END(shader);
310 return ureg_create_shader_and_destroy(shader, r->pipe);
317 struct ureg_program *shader;
323 shader = ureg_create(PIPE_SHADER_FRAGMENT);
324 if (!shader)
327 flags = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_FLAGS, TGSI_INTERPOLATE_LINEAR);
329 fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0);
331 tmp = calc_line(r->pipe->screen, shader);
342 ureg_SEQ(shader, ureg_writemask(tmp, TGSI_WRITEMASK_Y),
345 ureg_IF(shader, ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_Y), &label);
347 ureg_KILL(shader);
349 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
350 ureg_ELSE(shader, &label);
352 fs_callback(callback_priv, r, shader, VS_O_VTEX, tmp);
355 ureg_MAD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XYZ),
356 ureg_src(tmp), ureg_imm1f(shader, scale),
359 ureg_ADD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_XYZ),
362 ureg_MUL(shader, ureg_writemask(fragment, TGSI_WRITEMASK_XYZ), ureg_src(tmp), ureg_imm1f(shader, invert ? -1.0f : 1.0f));
363 ureg_MOV(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W), ureg_imm1f(shader, 1.0f));
365 ureg_fixup_label(shader, label, ureg_get_instruction_number(shader));
366 ureg_ENDIF(shader);
368 ureg_release_temporary(shader, tmp);
370 ureg_END(shader);
372 return ureg_create_shader_and_destroy(shader, r->pipe);