diff options
author | Marek Olšák <[email protected]> | 2011-11-18 15:45:03 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-12-10 01:27:11 +0100 |
commit | 06f217d80f3d1318da4974bf7b31ea7edcf5eb0b (patch) | |
tree | c510dbe660ece96c1dd8ed54636c605e3bd368fe /src/mesa/state_tracker | |
parent | c83fb4d45f2a47042f395271efe6e5489b2c4aee (diff) |
gallium: implement ARB_conservative_depth
This adds a new TGSI property to represent the GLSL layout qualifier in TGSI.
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 6cc655d70cf..cd4db255f54 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -4557,6 +4557,25 @@ st_translate_program( interpMode[i]); } + if (program->shader_program->FragDepthLayout != FRAG_DEPTH_LAYOUT_NONE) { + switch (program->shader_program->FragDepthLayout) { + case FRAG_DEPTH_LAYOUT_ANY: + ureg_property_fs_depth_layout(ureg, TGSI_FS_DEPTH_LAYOUT_ANY); + break; + case FRAG_DEPTH_LAYOUT_GREATER: + ureg_property_fs_depth_layout(ureg, TGSI_FS_DEPTH_LAYOUT_GREATER); + break; + case FRAG_DEPTH_LAYOUT_LESS: + ureg_property_fs_depth_layout(ureg, TGSI_FS_DEPTH_LAYOUT_LESS); + break; + case FRAG_DEPTH_LAYOUT_UNCHANGED: + ureg_property_fs_depth_layout(ureg, TGSI_FS_DEPTH_LAYOUT_UNCHANGED); + break; + default: + assert(0); + } + } + if (proginfo->InputsRead & FRAG_BIT_WPOS) { /* Must do this after setting up t->inputs, and before * emitting constant references, below: |