mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 03:10:09 +01:00
llvmpipe: Ensure the packed input of the lp_test_format is aligned.
Fixes: - https://bugs.freedesktop.org/show_bug.cgi?id=85377 - http://llvm.org/bugs/show_bug.cgi?id=21365 Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
1ef6d439ba
commit
701f739d7f
1 changed files with 10 additions and 2 deletions
|
|
@ -133,6 +133,7 @@ test_format_float(unsigned verbose, FILE *fp,
|
|||
struct gallivm_state *gallivm;
|
||||
LLVMValueRef fetch = NULL;
|
||||
fetch_ptr_t fetch_ptr;
|
||||
PIPE_ALIGN_VAR(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES];
|
||||
PIPE_ALIGN_VAR(16) float unpacked[4];
|
||||
boolean first = TRUE;
|
||||
boolean success = TRUE;
|
||||
|
|
@ -160,13 +161,16 @@ test_format_float(unsigned verbose, FILE *fp,
|
|||
first = FALSE;
|
||||
}
|
||||
|
||||
/* To ensure it's 16-byte aligned */
|
||||
memcpy(packed, test->packed, sizeof packed);
|
||||
|
||||
for (i = 0; i < desc->block.height; ++i) {
|
||||
for (j = 0; j < desc->block.width; ++j) {
|
||||
boolean match = TRUE;
|
||||
|
||||
memset(unpacked, 0, sizeof unpacked);
|
||||
|
||||
fetch_ptr(unpacked, test->packed, j, i);
|
||||
fetch_ptr(unpacked, packed, j, i);
|
||||
|
||||
for(k = 0; k < 4; ++k) {
|
||||
if (util_double_inf_sign(test->unpacked[i][j][k]) != util_inf_sign(unpacked[k])) {
|
||||
|
|
@ -220,6 +224,7 @@ test_format_unorm8(unsigned verbose, FILE *fp,
|
|||
struct gallivm_state *gallivm;
|
||||
LLVMValueRef fetch = NULL;
|
||||
fetch_ptr_t fetch_ptr;
|
||||
PIPE_ALIGN_VAR(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES];
|
||||
uint8_t unpacked[4];
|
||||
boolean first = TRUE;
|
||||
boolean success = TRUE;
|
||||
|
|
@ -246,13 +251,16 @@ test_format_unorm8(unsigned verbose, FILE *fp,
|
|||
first = FALSE;
|
||||
}
|
||||
|
||||
/* To ensure it's 16-byte aligned */
|
||||
memcpy(packed, test->packed, sizeof packed);
|
||||
|
||||
for (i = 0; i < desc->block.height; ++i) {
|
||||
for (j = 0; j < desc->block.width; ++j) {
|
||||
boolean match;
|
||||
|
||||
memset(unpacked, 0, sizeof unpacked);
|
||||
|
||||
fetch_ptr(unpacked, test->packed, j, i);
|
||||
fetch_ptr(unpacked, packed, j, i);
|
||||
|
||||
match = TRUE;
|
||||
for(k = 0; k < 4; ++k) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue