Bug 22347

Summary: [KMS] mesa demo cubemap broken for rv280
Product: Mesa Reporter: Andrew Randrianasulu <randrik>
Component: Drivers/DRI/R100Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: glxinfo log
glxinfo -l
Screenshot
mmiotrace log

Description Andrew Randrianasulu 2009-06-18 05:17:07 UTC
Created attachment 26918 [details]
glxinfo log

Using kernel 2.6.30-git up to 

commit 3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8
Merge: c30938d... 2030117...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Jun 17 10:42:21 2009 -0700

Mesa master commit 3addc4e3078b99db07598ac0b2473f7612b83a09
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jun 17 20:46:12 2009 -0700

    i965: Add decode for the G4X x,y offset in surface state.

libdrm commit 2fa2db138ba989bfa1a8cd9ab66d83fb7369249e
Author: Dave Airlie <airlied@linux.ie>
Date:   Wed Jun 17 17:47:42 2009 +1000

    libdrm/radeon: add initial libdrm_radeon

xf86-video-ati from ~/glisse/xf86-video-ati radeon-gem-cs3 branch commit 7a514a750fc6bca34e9549eb28e344576c0de4f1
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jun 4 22:33:39 2009 +0200

    radeon: scissor rendering to pixmap widht and height

(will try radeon-kms branch in few minutes)

i got broken rendring in mesa/demos/cubemap (default window).

My hardware - 

01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (rev 01) (prog-if 00 [VGA controller])
        Subsystem: Hightech Information System Ltd. Excalibur 9200SE VIVO 128M
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 16
        Memory at c8000000 (32-bit, prefetchable) [size=128M]
        I/O ports at b800 [size=256]
        Memory at d7ef0000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at d7ec0000 [disabled] [size=128K]
        Capabilities: [58] AGP version 2.0
        Capabilities: [50] Power Management version 2
        Kernel driver in use: radeon
        Kernel modules: radeon, radeonfb

radeon was loaded with "agpmode=-1 modeset=1" parameters.
Comment 1 Andrew Randrianasulu 2009-06-18 05:19:57 UTC
Created attachment 26919 [details]
glxinfo -l

Strange, GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 4096 (on rv280?)
Comment 2 Roland Scheidegger 2009-06-18 06:54:09 UTC
(In reply to comment #1)
> Strange, GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 4096 (on rv280?)
Not related to the cubemap failure, but it seems radeon-rewrite does not set texture limits at all, other than 2D size. Old r100/r200 drivers used to call driCalculateMaxTextureLevels which set this, but now don't hence cube/rect/3d sizes end up with whatever mesa sets the default to (not good). Also allow_large_textures is still queried but won't have any effect, I think it still should be used at least when running without memory manager.
Comment 3 Andrew Randrianasulu 2009-06-18 09:13:44 UTC
Created attachment 26927 [details]
Screenshot

Corruption may look different at each run.
Comment 4 Roland Scheidegger 2009-06-19 14:06:54 UTC
(In reply to comment #3)
> Created an attachment (id=26927) [details]
> Screenshot
> 
> Corruption may look different at each run.

Hmm yes looks like you get random data for all faces except the first.
I guess there's something wrong with the cube emit, I've just fixed this for the non-mm case (no corruption there but a definitive "no" from the command verifier), but I'm not sure what's wrong with the mm case. I found it a bit strange the gem flags are different for textures and cube textures, but I doubt that causes problems...
Comment 5 Andrew Randrianasulu 2009-06-30 17:44:22 UTC
Using more recent mesa (commit 18a1c36c2d32f8c571f98d7e6857a44bb2dc8942 in master) and drm (commit de1ed01214874dcdd6116ff2587c8710d6ed4d2d) i started to see many "CS section size missmatch" lines in terminal:

guest@slax:~$ cd source/mesa/progs/demos/
guest@slax:~/source/mesa/progs/demos$ ./cubemap 
DRM version 1.0 too old to support HyperZ, disabling.
GL_RENDERER: Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+ TCL DRI2
GL_REFLECTION_MAP_ARB mode
keys:
  SPACE - toggle animation
  CURSOR KEYS - rotation
  c - toggle texture clamp/wrap mode
  f - toggle texture filter mode
  m - toggle texgen reflection mode
  z/Z - change viewing distance
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
CS section size missmatch start at (r200_state_init.c,cube_emit_cs,654) 22 vs 12
CS section end at (r200_state_init.c,cube_emit_cs,665)
Comment 6 Andrew Randrianasulu 2009-07-19 12:36:20 UTC
Created attachment 27833 [details]
mmiotrace log

original filename cubemap_r200_compressed.gz It expands to 828K long log file. Events were - start X session with only one Eterm, run cubemap demo for few seconds.

radeon module was loaded with agpmode=-1.
Comment 7 Adam Jackson 2009-08-24 12:32:29 UTC
Mass version move, cvs -> git
Comment 8 Andrew Randrianasulu 2009-09-25 15:56:14 UTC
Bug fixed in drm-next

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.