From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 57842] New: r200: Culling is broken when rendering to an FBO
Date: Mon, 03 Dec 2012 15:12:57 +0000
Message-ID:
Priority
medium
Bug ID
57842
Assignee
dri-devel@lists.freedesktop.org
Summary
r200: Culling is broken when rendering to an FBO
Severity
normal
Classification
Unclassified
OS
All
Reporter
stefandoesinger@gmx.at
Hardware
Other
Status
NEW
Version
git
Component
Drivers/DRI/r200
Product
Mesa
Created attachment 70972 [details]
Test case
When rendering to an FBO with culling enabled, the r200 driver discards all
geometry. As soon as GL_CULL_FACE is enabled, nothing is drawn. The glCullFace,
glFrontFace and primitive orientation don't seem to make a difference. When
rendering to a glx front or back buffer, culling behaves correctly.
The attached test case shows the issue. It creates an FBO, clears it with a
blue color, and then draws a front- and back facing triangle in red and green
respectively, and culls front-facing primitives. Afterwards the FBO texture is
drawn to the window. The expected result is that the green triangle shows up.
The actual result is a solid blue window.
I've had a quick look at the driver source code. r200FrontFace swaps front- and
back facing geometry because the driver renders everything upside down on FBOs.
This code doesn't seem to have any effect on this bug. What seems to trigger it
is not inverting the viewport in r200UpdateWindow(), but I don't understand
why.
The test case can be compiled with gcc fbo.c -o fbo -lGL -lglut , and started
by simply running the binary without any parameters.