浏览代码

st/xa: emit sampler view declarations in shaders

Fixes recent regressions with the VMware gallium driver.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Tested-by: Charmaine Lee <charmainel@vmware.com>
tags/12.0-branchpoint
Brian Paul 9 年前
父节点
当前提交
a8e5edaadf
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19
    0
      src/gallium/state_trackers/xa/xa_tgsi.c

+ 19
- 0
src/gallium/state_trackers/xa/xa_tgsi.c 查看文件

@@ -339,6 +339,16 @@ create_yuv_shader(struct pipe_context *pipe, struct ureg_program *ureg)
u_sampler = ureg_DECL_sampler(ureg, 1);
v_sampler = ureg_DECL_sampler(ureg, 2);

ureg_DECL_sampler_view(ureg, 0, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);
ureg_DECL_sampler_view(ureg, 1, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);
ureg_DECL_sampler_view(ureg, 2, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);

matrow0 = ureg_DECL_constant(ureg, 0);
matrow1 = ureg_DECL_constant(ureg, 1);
matrow2 = ureg_DECL_constant(ureg, 2);
@@ -475,6 +485,9 @@ create_fs(struct pipe_context *pipe, unsigned fs_traits)
}
if (is_composite) {
src_sampler = ureg_DECL_sampler(ureg, 0);
ureg_DECL_sampler_view(ureg, 0, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);
src_input = ureg_DECL_fs_input(ureg,
TGSI_SEMANTIC_GENERIC, 0,
TGSI_INTERPOLATE_PERSPECTIVE);
@@ -494,12 +507,18 @@ create_fs(struct pipe_context *pipe, unsigned fs_traits)

if (has_mask) {
mask_sampler = ureg_DECL_sampler(ureg, 1);
ureg_DECL_sampler_view(ureg, 1, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);
mask_pos = ureg_DECL_fs_input(ureg,
TGSI_SEMANTIC_GENERIC, 1,
TGSI_INTERPOLATE_PERSPECTIVE);
}
#if 0 /* unused right now */
dst_sampler = ureg_DECL_sampler(ureg, 2);
ureg_DECL_sampler_view(ureg, 2, TGSI_TEXTURE_2D,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT,
TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT);
dst_pos = ureg_DECL_fs_input(ureg,
TGSI_SEMANTIC_POSITION, 2,
TGSI_INTERPOLATE_PERSPECTIVE);

正在加载...
取消
保存