Keith Whitwell wrote:
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.


Keith


thanks for having a look at the patch

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;

Reply via email to