projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
etnaviv: split dump_shader
[mesa.git]
/
src
/
gallium
/
drivers
/
softpipe
/
sp_quad_depth_test.c
diff --git
a/src/gallium/drivers/softpipe/sp_quad_depth_test.c
b/src/gallium/drivers/softpipe/sp_quad_depth_test.c
index be2504e18845eaeda798e0c39caa144d69ea9aae..98dd36d21a394522ee7da2af92662cc52f5e2ed6 100644
(file)
--- a/
src/gallium/drivers/softpipe/sp_quad_depth_test.c
+++ b/
src/gallium/drivers/softpipe/sp_quad_depth_test.c
@@
-782,9
+782,10
@@
depth_test_quads_fallback(struct quad_stage *qs,
{
unsigned i, pass = 0;
const struct tgsi_shader_info *fsInfo = &qs->softpipe->fs_variant->info;
{
unsigned i, pass = 0;
const struct tgsi_shader_info *fsInfo = &qs->softpipe->fs_variant->info;
- boolean interp_depth = !fsInfo->writes_z;
+ boolean interp_depth = !fsInfo->writes_z
|| qs->softpipe->early_depth
;
boolean shader_stencil_ref = fsInfo->writes_stencil;
struct depth_data data;
boolean shader_stencil_ref = fsInfo->writes_stencil;
struct depth_data data;
+ unsigned vp_idx = quads[0]->input.viewport_index;
data.use_shader_stencil_refs = FALSE;
data.use_shader_stencil_refs = FALSE;
@@
-801,11
+802,11
@@
depth_test_quads_fallback(struct quad_stage *qs,
data.format = data.ps->format;
data.tile = sp_get_cached_tile(qs->softpipe->zsbuf_cache,
quads[0]->input.x0,
data.format = data.ps->format;
data.tile = sp_get_cached_tile(qs->softpipe->zsbuf_cache,
quads[0]->input.x0,
- quads[0]->input.y0);
- data.clamp = !qs->softpipe->rasterizer->depth_clip;
+ quads[0]->input.y0
, quads[0]->input.layer
);
+ data.clamp = !qs->softpipe->rasterizer->depth_clip
_near
;
- near_val = qs->softpipe->viewport
.translate[2] - qs->softpipe->viewport
.scale[2];
- far_val = near_val + (qs->softpipe->viewport.scale[2] * 2.0);
+ near_val = qs->softpipe->viewport
s[vp_idx].translate[2] - qs->softpipe->viewports[vp_idx]
.scale[2];
+ far_val = near_val + (qs->softpipe->viewport
s[vp_idx]
.scale[2] * 2.0);
data.minval = MIN2(near_val, far_val);
data.maxval = MAX2(near_val, far_val);
data.minval = MIN2(near_val, far_val);
data.maxval = MAX2(near_val, far_val);
@@
-901,7
+902,7
@@
choose_depth_test(struct quad_stage *qs,
{
const struct tgsi_shader_info *fsInfo = &qs->softpipe->fs_variant->info;
{
const struct tgsi_shader_info *fsInfo = &qs->softpipe->fs_variant->info;
- boolean interp_depth = !fsInfo->writes_z;
+ boolean interp_depth = !fsInfo->writes_z
|| qs->softpipe->early_depth
;
boolean alpha = qs->softpipe->depth_stencil->alpha.enabled;
boolean alpha = qs->softpipe->depth_stencil->alpha.enabled;
@@
-915,7
+916,7
@@
choose_depth_test(struct quad_stage *qs,
boolean occlusion = qs->softpipe->active_query_count;
boolean occlusion = qs->softpipe->active_query_count;
- boolean clipped = !qs->softpipe->rasterizer->depth_clip;
+ boolean clipped = !qs->softpipe->rasterizer->depth_clip
_near
;
if(!qs->softpipe->framebuffer.zsbuf)
depth = depthwrite = stencil = FALSE;
if(!qs->softpipe->framebuffer.zsbuf)
depth = depthwrite = stencil = FALSE;