Lines Matching refs:ureg

107 src_in_mask(struct ureg_program *ureg,
115 ureg_MOV(ureg, dst, src);
116 ureg_MUL(ureg, ureg_writemask(dst, TGSI_WRITEMASK_W),
119 ureg_MUL(ureg, dst, src, ureg_scalar(mask, TGSI_SWIZZLE_X));
122 ureg_MUL(ureg, dst, src, ureg_scalar(mask, TGSI_SWIZZLE_W));
124 ureg_MUL(ureg, dst, src, mask);
128 vs_normalize_coords(struct ureg_program *ureg,
132 struct ureg_dst tmp = ureg_DECL_temporary(ureg);
135 ureg_MAD(ureg, tmp, coords, const0, const1);
137 ureg_release_temporary(ureg, tmp);
144 struct ureg_program *ureg;
155 ureg = ureg_create(PIPE_SHADER_VERTEX);
156 if (ureg == NULL)
159 const0 = ureg_DECL_constant(ureg, 0);
160 const1 = ureg_DECL_constant(ureg, 1);
163 src = ureg_DECL_vs_input(ureg, input_slot++);
164 dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 0);
165 src = vs_normalize_coords(ureg, src, const0, const1);
166 ureg_MOV(ureg, dst, src);
169 src = ureg_DECL_vs_input(ureg, input_slot++);
170 dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 0);
171 ureg_MOV(ureg, dst, src);
176 src = ureg_DECL_vs_input(ureg, input_slot++);
177 dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 0);
178 ureg_MOV(ureg, dst, src);
182 src = ureg_DECL_vs_input(ureg, input_slot++);
183 dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 1);
184 ureg_MOV(ureg, dst, src);
188 ureg_END(ureg);
190 return ureg_create_shader_and_destroy(ureg, pipe);
194 create_yuv_shader(struct pipe_context *pipe, struct ureg_program *ureg)
200 struct ureg_dst out = ureg_DECL_output(ureg,
204 pos = ureg_DECL_fs_input(ureg,
208 rgb = ureg_DECL_temporary(ureg);
209 y = ureg_DECL_temporary(ureg);
210 u = ureg_DECL_temporary(ureg);
211 v = ureg_DECL_temporary(ureg);
213 y_sampler = ureg_DECL_sampler(ureg, 0);
214 u_sampler = ureg_DECL_sampler(ureg, 1);
215 v_sampler = ureg_DECL_sampler(ureg, 2);
217 ureg_DECL_sampler_view(ureg, 0, TGSI_TEXTURE_2D,
220 ureg_DECL_sampler_view(ureg, 1, TGSI_TEXTURE_2D,
223 ureg_DECL_sampler_view(ureg, 2, TGSI_TEXTURE_2D,
227 matrow0 = ureg_DECL_constant(ureg, 0);
228 matrow1 = ureg_DECL_constant(ureg, 1);
229 matrow2 = ureg_DECL_constant(ureg, 2);
230 matrow3 = ureg_DECL_constant(ureg, 3);
232 ureg_TEX(ureg, y, TGSI_TEXTURE_2D, pos, y_sampler);
233 ureg_TEX(ureg, u, TGSI_TEXTURE_2D, pos, u_sampler);
234 ureg_TEX(ureg, v, TGSI_TEXTURE_2D, pos, v_sampler);
236 ureg_MOV(ureg, rgb, matrow3);
237 ureg_MAD(ureg, rgb,
239 ureg_MAD(ureg, rgb,
241 ureg_MAD(ureg, rgb,
244 ureg_MOV(ureg, out, ureg_src(rgb));
246 ureg_release_temporary(ureg, rgb);
247 ureg_release_temporary(ureg, y);
248 ureg_release_temporary(ureg, u);
249 ureg_release_temporary(ureg, v);
251 ureg_END(ureg);
253 return ureg_create_shader_and_destroy(ureg, pipe);
257 xrender_tex(struct ureg_program *ureg,
265 struct ureg_dst tmp0 = ureg_DECL_temporary(ureg);
266 struct ureg_dst tmp1 = ureg_DECL_temporary(ureg);
268 ureg_SGT(ureg, tmp1, ureg_swizzle(coords,
274 ureg_SLT(ureg, tmp0,
278 ureg_MIN(ureg, tmp0, ureg_src(tmp0), ureg_src(tmp1));
279 ureg_MIN(ureg, tmp0, ureg_scalar(ureg_src(tmp0), TGSI_SWIZZLE_X),
281 ureg_TEX(ureg, tmp1, TGSI_TEXTURE_2D, coords, sampler);
283 ureg_MOV(ureg, tmp1, ureg_swizzle(ureg_src(tmp1),
288 ureg_MOV(ureg,
291 ureg_MUL(ureg, dst, ureg_src(tmp1), ureg_src(tmp0));
292 ureg_release_temporary(ureg, tmp0);
293 ureg_release_temporary(ureg, tmp1);
296 struct ureg_dst tmp = ureg_DECL_temporary(ureg);
298 ureg_TEX(ureg, tmp, TGSI_TEXTURE_2D, coords, sampler);
299 ureg_MOV(ureg, dst, ureg_swizzle(ureg_src(tmp),
303 ureg_release_temporary(ureg, tmp);
305 ureg_TEX(ureg, dst, TGSI_TEXTURE_2D, coords, sampler);
308 ureg_MOV(ureg,
315 read_input(struct ureg_program *ureg,
324 input = ureg_DECL_constant(ureg, (*cur_constant)++);
325 ureg_MOV(ureg, dst, input);
327 sampler = ureg_DECL_sampler(ureg, *cur_sampler);
328 ureg_DECL_sampler_view(ureg, *cur_sampler, TGSI_TEXTURE_2D,
331 input = ureg_DECL_fs_input(ureg,
334 xrender_tex(ureg, dst, input, sampler, imm0,
342 struct ureg_program *ureg;
369 ureg = ureg_create(PIPE_SHADER_FRAGMENT);
370 if (ureg == NULL)
374 return create_yuv_shader(pipe, ureg);
376 out = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 0);
380 imm0 = ureg_imm4f(ureg, 0, 0, 0, 1);
384 ureg_DECL_temporary(ureg) : out;
386 read_input(ureg, src, &imm0, src_repeat_none, src_swizzle,
390 ureg_MOV(ureg, src, ureg_scalar(ureg_src(src), TGSI_SWIZZLE_X));
391 ureg_MOV(ureg, ureg_writemask(src, TGSI_WRITEMASK_XYZ),
394 ureg_MOV(ureg, out, ureg_src(src));
398 mask = ureg_DECL_temporary(ureg);
399 read_input(ureg, mask, &imm0, mask_repeat_none,
403 src_in_mask(ureg, (dst_luminance) ? src : out, ureg_src(src),
406 ureg_release_temporary(ureg, mask);
413 ureg_MOV(ureg, out, ureg_scalar(ureg_src(src), TGSI_SWIZZLE_W));
416 ureg_END(ureg);
418 return ureg_create_shader_and_destroy(ureg, pipe);