etnaviv: disable earlyZ when shader writes fragment depth
Fixes the following piglit test: fragdepth_gles2 Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
This commit is contained in:
parent
dc3656c9c4
commit
d4e35e62d2
|
@ -451,9 +451,10 @@ etna_emit_state(struct etna_context *ctx)
|
|||
: ctx->shader_state.PS_TEMP_REGISTER_CONTROL);
|
||||
/*01010*/ EMIT_STATE(PS_CONTROL, ctx->shader_state.PS_CONTROL);
|
||||
}
|
||||
if (unlikely(dirty & (ETNA_DIRTY_ZSA | ETNA_DIRTY_FRAMEBUFFER))) {
|
||||
uint32_t val = etna_zsa_state(ctx->zsa)->PE_DEPTH_CONFIG;
|
||||
/*01400*/ EMIT_STATE(PE_DEPTH_CONFIG, val | ctx->framebuffer.PE_DEPTH_CONFIG);
|
||||
if (unlikely(dirty & (ETNA_DIRTY_ZSA | ETNA_DIRTY_FRAMEBUFFER | ETNA_DIRTY_SHADER))) {
|
||||
/*01400*/ EMIT_STATE(PE_DEPTH_CONFIG, (etna_zsa_state(ctx->zsa)->PE_DEPTH_CONFIG |
|
||||
ctx->framebuffer.PE_DEPTH_CONFIG) &
|
||||
ctx->shader_state.PE_DEPTH_CONFIG);
|
||||
}
|
||||
if (unlikely(dirty & (ETNA_DIRTY_VIEWPORT))) {
|
||||
/*01404*/ EMIT_STATE(PE_DEPTH_NEAR, ctx->viewport.PE_DEPTH_NEAR);
|
||||
|
|
|
@ -257,6 +257,7 @@ struct compiled_shader_state {
|
|||
uint32_t PS_TEMP_REGISTER_CONTROL_MSAA; /* Adds a temporary if needed to make space for extra input */
|
||||
uint32_t PS_CONTROL;
|
||||
uint32_t PS_START_PC;
|
||||
uint32_t PE_DEPTH_CONFIG;
|
||||
uint32_t GL_VARYING_TOTAL_COMPONENTS;
|
||||
uint32_t GL_VARYING_NUM_COMPONENTS;
|
||||
uint32_t GL_VARYING_COMPONENT_USE[2];
|
||||
|
|
|
@ -199,6 +199,9 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs,
|
|||
VIVS_GL_HALTI5_SH_SPECIALS_PS_PCOORD_IN((link.pcoord_varying_comp_ofs != -1) ?
|
||||
link.pcoord_varying_comp_ofs : 0x7f);
|
||||
|
||||
/* mask out early Z bit when frag depth is written */
|
||||
cs->PE_DEPTH_CONFIG = ~COND(fs->ps_depth_out_reg >= 0, VIVS_PE_DEPTH_CONFIG_EARLY_Z);
|
||||
|
||||
/* reference instruction memory */
|
||||
cs->vs_inst_mem_size = vs->code_size;
|
||||
cs->VS_INST_MEM = vs->code;
|
||||
|
|
Loading…
Reference in New Issue