From c867de509c45538646b3fffbbbdc8a5d85f204d0 Mon Sep 17 00:00:00 2001 From: Dag Lem Date: Wed, 29 May 2013 23:49:40 +0200 Subject: [PATCH] Correct sampler address clamping for read image functions. Integer coordinates were converted to unsigned integers, yielding incorrect clamping of negative coordinates. Signed-off-by: Dag Lem Reviewed-by: Zhigang Gong --- backend/src/llvm/llvm_gen_backend.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp index 0037af2..db7d714 100644 --- a/backend/src/llvm/llvm_gen_backend.cpp +++ b/backend/src/llvm/llvm_gen_backend.cpp @@ -1907,14 +1907,15 @@ namespace gbe const ir::Tuple dstTuple = ctx.arrayTuple(&dstTupleData[0], elemNum); const ir::Tuple srcTuple = ctx.arrayTuple(&srcTupleData[0], 5); - ir::Type srcType = ir::TYPE_U32, dstType = ir::TYPE_U32; + ir::Type srcType = ir::TYPE_S32, dstType = ir::TYPE_U32; switch(it->second) { case GEN_OCL_READ_IMAGE0: case GEN_OCL_READ_IMAGE2: case GEN_OCL_READ_IMAGE10: case GEN_OCL_READ_IMAGE12: - srcType = dstType = ir::TYPE_U32; + dstType = ir::TYPE_U32; + srcType = ir::TYPE_S32; break; case GEN_OCL_READ_IMAGE1: case GEN_OCL_READ_IMAGE3: @@ -1926,7 +1927,7 @@ namespace gbe case GEN_OCL_READ_IMAGE4: case GEN_OCL_READ_IMAGE14: dstType = ir::TYPE_FLOAT; - srcType = ir::TYPE_U32; + srcType = ir::TYPE_S32; break; case GEN_OCL_READ_IMAGE5: case GEN_OCL_READ_IMAGE15: -- 2.7.4