diff options
author | Zack Rusin <[email protected]> | 2009-08-26 12:14:27 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2009-08-26 12:50:47 -0400 |
commit | b324aacf139bc88fa268057158af88f725c50c63 (patch) | |
tree | 8ef3aa153c59ea76244d002003be7c2217e418bf | |
parent | 490f640cd58d215281076ae6e0e70649db6b0ed5 (diff) |
st/xorg: create basic fragment shader
-rw-r--r-- | src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 710b65e6ae4..b428957abf8 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -64,21 +64,9 @@ create_vs(struct pipe_context *ctx, } static void * -create_fs(struct pipe_context *ctx, - unsigned vs_traits) -{ - return NULL; -} - -static struct xorg_shader -xorg_shader_construct(struct exa_context *exa, - int op, - PicturePtr src_picture, - PicturePtr mask_picture, - PicturePtr dst_picture) +create_fs(struct pipe_context *pipe, + unsigned fs_traits) { - struct xorg_shader shader = {0}; -#if 0 struct ureg_program *ureg; struct ureg_src dst_sampler, src_sampler, mask_sampler; struct ureg_src dst_pos, src_pos, mask_pos; @@ -86,10 +74,7 @@ xorg_shader_construct(struct exa_context *exa, ureg = ureg_create(TGSI_PROCESSOR_FRAGMENT); if (ureg == NULL) - return shader; - - if (sid.is_fill) - return shader; + return 0; #if 0 /* unused right now */ dst_sampler = ureg_DECL_sampler(ureg); @@ -105,18 +90,18 @@ xorg_shader_construct(struct exa_context *exa, 1, TGSI_INTERPOLATE_PERSPECTIVE); - if (sid.mask) { + if ((fs_traits & FS_MASK)) { mask_sampler = ureg_DECL_sampler(ureg); - src_pos = ureg_DECL_fs_input(ureg, - TGSI_SEMANTIC_POSITION, - 2, - TGSI_INTERPOLATE_PERSPECTIVE); + mask_pos = ureg_DECL_fs_input(ureg, + TGSI_SEMANTIC_POSITION, + 2, + TGSI_INTERPOLATE_PERSPECTIVE); } ureg_TEX(ureg, ureg_dst(src), TGSI_TEXTURE_2D, src_pos, src_sampler); - if (sid.mask) { + if ((fs_traits & FS_MASK)) { ureg_TEX(ureg, ureg_dst(mask), TGSI_TEXTURE_2D, mask_pos, mask_sampler); /* src IN mask */ @@ -125,8 +110,7 @@ xorg_shader_construct(struct exa_context *exa, ureg_END(ureg); -#endif - return shader; + return ureg_create_shader_and_destroy(ureg, pipe); } struct xorg_shaders * xorg_shaders_create(struct exa_context *exa) |