projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
st/xorg: If dri2 version is 2 support version 1 as well
[mesa.git]
/
src
/
gallium
/
drivers
/
llvmpipe
/
lp_bld_depth.c
diff --git
a/src/gallium/drivers/llvmpipe/lp_bld_depth.c
b/src/gallium/drivers/llvmpipe/lp_bld_depth.c
index 2cd6e6b92175cf82b76d10199068637e0c15176b..d438c0e63d7d43695775d89ed9ca137c8cf4d9db 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_bld_depth.c
+++ b/
src/gallium/drivers/llvmpipe/lp_bld_depth.c
@@
-71,11
+71,11
@@
/**
* Return a type appropriate for depth/stencil testing.
*/
/**
* Return a type appropriate for depth/stencil testing.
*/
-
union
lp_type
+
struct
lp_type
lp_depth_type(const struct util_format_description *format_desc,
unsigned length)
{
lp_depth_type(const struct util_format_description *format_desc,
unsigned length)
{
-
union
lp_type type;
+
struct
lp_type type;
unsigned swizzle;
assert(format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS);
unsigned swizzle;
assert(format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS);
@@
-85,12
+85,12
@@
lp_depth_type(const struct util_format_description *format_desc,
swizzle = format_desc->swizzle[0];
assert(swizzle < 4);
swizzle = format_desc->swizzle[0];
assert(swizzle < 4);
-
type.value = 0
;
+
memset(&type, 0, sizeof type)
;
type.width = format_desc->block.bits;
if(format_desc->channel[swizzle].type == UTIL_FORMAT_TYPE_FLOAT) {
type.floating = TRUE;
type.width = format_desc->block.bits;
if(format_desc->channel[swizzle].type == UTIL_FORMAT_TYPE_FLOAT) {
type.floating = TRUE;
- assert(swizzle = 0);
+ assert(swizzle =
=
0);
assert(format_desc->channel[swizzle].size == format_desc->block.bits);
}
else if(format_desc->channel[swizzle].type == UTIL_FORMAT_TYPE_UNSIGNED) {
assert(format_desc->channel[swizzle].size == format_desc->block.bits);
}
else if(format_desc->channel[swizzle].type == UTIL_FORMAT_TYPE_UNSIGNED) {
@@
-114,7
+114,7
@@
lp_depth_type(const struct util_format_description *format_desc,
void
lp_build_depth_test(LLVMBuilderRef builder,
const struct pipe_depth_state *state,
void
lp_build_depth_test(LLVMBuilderRef builder,
const struct pipe_depth_state *state,
-
union
lp_type type,
+
struct
lp_type type,
const struct util_format_description *format_desc,
struct lp_build_mask_context *mask,
LLVMValueRef src,
const struct util_format_description *format_desc,
struct lp_build_mask_context *mask,
LLVMValueRef src,
@@
-179,12
+179,13
@@
lp_build_depth_test(LLVMBuilderRef builder,
padding_right = 0;
for(chan = 0; chan < z_swizzle; ++chan)
padding_right += format_desc->channel[chan].size;
padding_right = 0;
for(chan = 0; chan < z_swizzle; ++chan)
padding_right += format_desc->channel[chan].size;
- padding_left = format_desc->block.bits - format_desc->channel[z_swizzle].size;
+ padding_left = format_desc->block.bits -
+ (padding_right + format_desc->channel[z_swizzle].size);
if(padding_left || padding_right) {
if(padding_left || padding_right) {
- const
long long mask_left = ((
long long)1 << (format_desc->block.bits - padding_left)) - 1;
- const
long long mask_right = ((
long long)1 << (padding_right)) - 1;
- z_bitmask = lp_build_int_const_scalar(type, mask_left
&
mask_right);
+ const
unsigned long long mask_left = ((unsigned
long long)1 << (format_desc->block.bits - padding_left)) - 1;
+ const
unsigned long long mask_right = ((unsigned
long long)1 << (padding_right)) - 1;
+ z_bitmask = lp_build_int_const_scalar(type, mask_left
^
mask_right);
}
if(padding_left)
}
if(padding_left)
@@
-209,6
+210,4
@@
lp_build_depth_test(LLVMBuilderRef builder,
dst = lp_build_select(&bld, z_bitmask, src, dst);
LLVMBuildStore(builder, dst, dst_ptr);
}
dst = lp_build_select(&bld, z_bitmask, src, dst);
LLVMBuildStore(builder, dst, dst_ptr);
}
-
- assert(!state->occlusion_count);
}
}