Andreas Stenglein wrote:
hello,
Am 2003.06.09 18:05:35 +0200 schrieb(en) Keith Whitwell:
Andreas,
Applied this today & had a brief look.
I needed to bump the version number in shared/drm/radeon.h to 1.9.0 before the extensions were enabled. Maybe this got missed from the diff?
I didn't want to bump the version before the packets for cubemap-texturing are in place... so I just added a check for >= 1.9.0 OR getenv( "RADEON_RECTANGLE_FORCE_ENABLE")
What problems are you having with texrect.c? I get:
texrect: radeon_ioctl.c:414: radeonEmitBlit: Assertion `(src_offset & 1023) == 0' failed.
Is this the same as you're seeing?
No, I dont get the assertion. It "just doesnt work as expected": I get white textures with grey/black points/lines. If I disable/comment out the radeonEmitBlit(), it looks the same, so maybe the blit doesnt work? On the other hand the assertion you get shouldn't occur, so it looks like I missed something.
The strange part is, that yuvrect (at least seems to) work(s) well. yuvrect even worked without the additional txsize/txpitch packet. And yuvrect works when RADEON_AGPTEXTURING_FORCE_DISABLE=1.
thanks for having a look at the patch
Keith
greetings, Andreas
PS: here's the begin of some output I get when running texrect, with RADEON_DEBUG=ioctl (unfortunately it sometimes hangs the Xserver until I kill texrect)
I've been playing a bit more -- it's kind of odd what works & doesn't... I haven't really got a handle on it yet...
OK, at least I know why the yuv code appeared to sortof work: it was hitting a fallback path and reverting to software rendering. Basically some code is missing for yuv support in radeonUpdateTextureEnv().
The attached patch includes the missing code. Now at least everything doesn't work. I still seem to get upload blits landing in the backbuffer on occasion.
Keith
Keith
Index: radeon_texstate.c =================================================================== RCS file: /cvsroot/dri/xc/xc/lib/GL/mesa/src/drv/radeon/radeon_texstate.c,v retrieving revision 1.17 diff -u -r1.17 radeon_texstate.c --- radeon_texstate.c 26 May 2003 19:48:52 -0000 1.17 +++ radeon_texstate.c 9 Jun 2003 23:17:04 -0000 @@ -814,6 +823,7 @@ break; case GL_LUMINANCE: case GL_RGB: + case GL_YCBCR_MESA: color_combine = radeon_color_combine[unit][RADEON_REPLACE]; alpha_combine = radeon_alpha_combine[unit][RADEON_DISABLE]; break; @@ -837,6 +847,7 @@ break; case GL_RGB: case GL_LUMINANCE: + case GL_YCBCR_MESA: color_combine = radeon_color_combine[unit][RADEON_MODULATE]; alpha_combine = radeon_alpha_combine[unit][RADEON_DISABLE]; break; @@ -850,6 +861,7 @@ switch ( format ) { case GL_RGBA: case GL_RGB: + case GL_YCBCR_MESA: color_combine = radeon_color_combine[unit][RADEON_DECAL]; alpha_combine = radeon_alpha_combine[unit][RADEON_DISABLE]; break; @@ -872,6 +884,7 @@ case GL_RGB: case GL_LUMINANCE: case GL_LUMINANCE_ALPHA: + case GL_YCBCR_MESA: color_combine = radeon_color_combine[unit][RADEON_BLEND]; alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; break; @@ -895,6 +908,7 @@ case GL_RGB: case GL_LUMINANCE: case GL_LUMINANCE_ALPHA: + case GL_YCBCR_MESA: color_combine = radeon_color_combine[unit][RADEON_ADD]; alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; break;