All offsets are six-bit signed integers on SI packed into one dword. They are set in the same way no matter what the instruction is.
All SAMPLE and GATHER4 instructions, i.e. those which take floating-point coordinates, support offsets. Only the IMAGE_LOAD instructions (texelFetch) don't support it, but since the coordinates are always integer, we can just add the offset with UADD, so the range is pretty much unlimited there. Marek On Sat, Jun 7, 2014 at 12:16 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Fri, Jun 6, 2014 at 5:58 PM, Marek Olšák <mar...@gmail.com> wrote: >> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c >> b/src/gallium/drivers/radeonsi/si_pipe.c >> index 4b96f20..a3e1846 100644 >> --- a/src/gallium/drivers/radeonsi/si_pipe.c >> +++ b/src/gallium/drivers/radeonsi/si_pipe.c >> @@ -294,11 +297,12 @@ static int si_get_param(struct pipe_screen* pscreen, >> enum pipe_cap param) >> >> case PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET: >> case PIPE_CAP_MIN_TEXEL_OFFSET: >> - return -8; >> + return -32; >> >> case PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET: >> case PIPE_CAP_MAX_TEXEL_OFFSET: >> - return 7; >> + return 31; > > Is it actually the case that you can handle texelFetchOffset with a > -32..+31 range? On nvc0, it can still only do -8..+7 for texelFetch > even though it can do -32..+31 for textureGather, which is why I'm > asking. > > -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev