mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
i965/fs: Assume shadow sampler swizzling is <X, X, X, 1>.
Our previous assumption, SWIZZLE_XYZW, was completely bogus for depth textures. There are no Y, Z, or W components. DEPTH_TEXTURE_MODE has three options: - GL_LUMINANCE: <X, X, X, 1> - GL_INTENSITY: <X, X, X, X> - GL_ALPHA: <0, 0, 0, X> The default value is GL_LUMINANCE, and most applications don't seem to alter DEPTH_TEXTURE_MODE. Make that our precompile guess. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
f3d0daf7ea
commit
85b24b0751
1 changed files with 8 additions and 2 deletions
|
|
@ -2179,8 +2179,14 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
key.clamp_fragment_color = true;
|
||||
|
||||
for (int i = 0; i < MAX_SAMPLERS; i++) {
|
||||
/* FINISHME: depth compares might use (0,0,0,W) for example */
|
||||
key.tex.swizzles[i] = SWIZZLE_XYZW;
|
||||
if (fp->Base.ShadowSamplers & (1 << i)) {
|
||||
/* Assume DEPTH_TEXTURE_MODE is the default: X, X, X, 1 */
|
||||
key.tex.swizzles[i] =
|
||||
MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_X, SWIZZLE_X, SWIZZLE_ONE);
|
||||
} else {
|
||||
/* Color sampler: assume no swizzling. */
|
||||
key.tex.swizzles[i] = SWIZZLE_XYZW;
|
||||
}
|
||||
}
|
||||
|
||||
if (fp->Base.InputsRead & FRAG_BIT_WPOS) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue