2011/4/26 Christian König <deathsim...@vodafone.de>: > Hi Alex, > > Am Dienstag, den 26.04.2011, 09:52 -0400 schrieb Alex Deucher: >> This looks great Christian. Nice work. One quick note regarding >> 68cc6bc5d8b6986acc7f5780d705f4ae9be2a446, COLOR[0-7]_INFO does need a >> bo. It's required since that reg has the tiling field and we need the >> reloc to know if the surface is tiled or not. > > Ah, thanks for that. I was really wondering why this register was market > with this flag, because it contains neither addr nor length of a block. > > But one question remains: What's the correct way to fix that? > > Hacking the winsys code to do the relocation only when a bo is specified > is easy, but I'm not really sure what the drm cb checker will say to > that. Ok, I just implemented this while typing and it seems to work fine > (at least on kernel 2.6.37). > > Another open end I wanted to ask you is about this diff fragment from > r600_state.c: > > /* on R600 this can't be set if BLEND_CLAMP isn't set, > if BLEND_FLOAT32 is set of > 11 bits in a UNORM or SNORM */ > - if (desc->colorspace != UTIL_FORMAT_COLORSPACE_ZS && > - desc->channel[i].size < 12) > + if (desc->colorspace != UTIL_FORMAT_COLORSPACE_ZS && > desc->channel[i].size < 12) { > + //TODO: Seems to work on RV710, but i have no idea what to do > between R600-RV710 > + if (rctx->family < CHIP_RV710) { > + color_info |= S_0280A0_BLEND_CLAMP(1); > + color_info_mask |= S_0280A0_BLEND_CLAMP(1); > + } > color_info |= S_0280A0_SOURCE_FORMAT(V_0280A0_EXPORT_NORM); > + } > > According to the documentation and comments BLEND_CLAMP seems to be > necessary on R600 with 8bit snorm buffers, but this implies that we > would never be able to fully implement the clamping control from > ARB_color_buffer_float spec... > > Tests on my RV710 are showing that 8bit snorm buffers are still working > quite fine even without BLEND_CLAMP, so what does R600 means in this > case? R6xx, but not R7xx chipset family? or just the original R600 > chipset?
Setting SOURCE_FORMAT to EXPORT_NORM (1) is merely an optimization. Leaving SOURCE_FORMAT at 0 will work in all cases, but is less efficient. The conditions for the setting the SOURCE_FORMAT=1 optimization are as follows: R600/RV6xx: BLEND_CLAMP is enabled BLEND_FLOAT32 is disabled 11-bit or smaller UNORM/SNORM/SRGB R7xx: 11-bit or smaller UNORM/SNORM/SRGB 16-bit or smaller FLOAT Also, note that the following fields in CB_COLOR[0-7]_INFO are gone in r7xx: READ_SIZE, CLEAR_COLOR, BLEND_FLOAT32, and TILE_COMPACT. Alex > > Regards, > Christian. > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev