st/mesa: move frag depth up a level.
This fixes the segfault, and seems to put this closer to where other properties are being set. Hopefully it still conforms. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -4557,25 +4557,6 @@ st_translate_program(
|
|||||||
interpMode[i]);
|
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) {
|
if (proginfo->InputsRead & FRAG_BIT_WPOS) {
|
||||||
/* Must do this after setting up t->inputs, and before
|
/* Must do this after setting up t->inputs, and before
|
||||||
* emitting constant references, below:
|
* emitting constant references, below:
|
||||||
|
@@ -649,6 +649,25 @@ st_translate_fragment_program(struct st_context *st,
|
|||||||
if (write_all == GL_TRUE)
|
if (write_all == GL_TRUE)
|
||||||
ureg_property_fs_color0_writes_all_cbufs(ureg, 1);
|
ureg_property_fs_color0_writes_all_cbufs(ureg, 1);
|
||||||
|
|
||||||
|
if (stfp->Base.FragDepthLayout != FRAG_DEPTH_LAYOUT_NONE) {
|
||||||
|
switch (stfp->Base.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 (stfp->glsl_to_tgsi)
|
if (stfp->glsl_to_tgsi)
|
||||||
st_translate_program(st->ctx,
|
st_translate_program(st->ctx,
|
||||||
TGSI_PROCESSOR_FRAGMENT,
|
TGSI_PROCESSOR_FRAGMENT,
|
||||||
|
Reference in New Issue
Block a user