View Issue Details

IDProjectCategoryView StatusLast Update
0002371Dwarf FortressTechnical -- Generalpublic2012-02-15 07:21
ReporterBubbaBrown Assigned ToBaughn  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWindowsOSWindows 64-bitOS Version7
Product Version0.31.06 
Summary0002371: OpenGL Drawing Artifacts
DescriptionThroughout the game and even at the starting menus, there seems to be an erratic OpenGL drawing glitch which produces a "star burst" pattern in the background starting from the upper left hand corner and outwards across the DF window.

It seems that the drawing updates to the screen and the rendering are out of sync, so an intermediate state of the rendering process is being shown. Or, a buffer isn't being cleared properly. This seems to happen on all OpenGL drawing modes, but never on the standard 2D modes.
Steps To ReproduceRun the game with any OpenGL display mode.
Additional InformationATI Radeon HD4890, Catalyst Drivers 9.12

Maximum "rendering" FPS is set to 200.
Maximum "display" FPS is set to 60.
TagsSDL-only

Relationships

related to 0002312 resolvedBaughn game crashes whilst starting 

Activities

user6

2010-06-18 16:37

  ~0008643

It looks like the current Catalyst version is 10.6: http://game.amd.com/us-en/drivers_catalyst.aspx

You should probably try updating.

BubbaBrown

2010-06-18 19:40

reporter   ~0008652

I doubt it's a driver issue. DF makes use of basic OpenGL functionality, and I've never seen this kind of issue in any other OpenGL application and benchmarks this particular machine has run. (3DMark, FurMark, etc...) And pulling from my past OpenGL experiences, it seems like improper ordering of OpenGL calls... an overly aggressive use of glFlush() or a premature (or missing) glEnd()? I can only make stabs in the dark without seeing the code. :P

user6

2010-06-18 20:17

  ~0008653

Last edited: 2010-06-18 20:21

DF makes use of basic OpenGL functionality

I'm not sure which version you're referring to, but if you're using 31.06 SDL (as opposed to 31.06 Legacy), that one has had all of its rendering code rewritten. Outdated drivers (particularly on Windows 7, which had buggy launch drivers) have been a major cause of crashes, artifacts, etc in the SDL versions.

I strongly suggest updating -- as in, we really can't do anything with this report until that possibility is ruled out.

BubbaBrown

2010-06-18 21:09

reporter   ~0008655

I am using 31.06 SDL. Updated the graphics drivers, still does it. The point of origin for the starburst is in the upper left hand corner, which usually is 0,0 origin for most drawing. I tried to capture a FRAPS of it, but FRAPS actually helped the issue, greatly. The issue came back once I unloaded FRAPS and changed to another menu screen. I can load and unload FRAPS to control the artifact's appearance along with changing menus. So, the hooks that FRAPS does to either the system's or OpenGL rendering pipeline to capture the output may alter the timing enough to stop the artifact from occurring.

On a side note, FRAPS's frame rate counter has shown some strange fluxes on a unchanging, still screen on start up.

user6

2010-06-18 21:24

  ~0008656

Last edited: 2010-06-18 21:24

What PRINT_MODE are you using in /data/init/init.txt? Try using a different one (also, if you copied your init.txt from a previous versoin, don't do that).

BubbaBrown

2010-06-18 22:36

reporter   ~0008663

The init.txt is clean with the only modifications being to add graphics and a tileset.

I tried a few of the modes:
NORMAL - Glitch as described.
VBO - Glitch as described.
FRAME_BUFFER - Okay from what I saw.
ACCUM_BUFFER - Broken, accumulating too much and keeping it for too long.
PARTIAL - Like the ACCUM_BUFFER, but not quite as bad. Number changes made no real difference.

BubbaBrown

2010-06-22 21:23

reporter   ~0008997

Looking at the related issue, I remember a few things about the difference between how Nvidia and ATI handle OpenGL drawing errors. Nvidia drivers typically allow errors and bad calls to go through without intervening. ATI drivers will detect bad call practices and errors and will actually attempt to correct those errors to prevent complete failures. It's been awhile since I've messed with them, but it was enough of a difference between the two manufacturers that OpenGL class projects had to be tested on both to make sure they worked correctly overall.

Again, I suggest looking at the OpenGL API calls and the ordering to make sure they are started and ended properly. And if there is some threading going on, make sure threading doesn't allow interruptions to this call order.

user6

2010-06-22 21:47

  ~0008998

Reminder sent to: Baughn

Hey Baughn -- in case you didn't see this one already.

Baughn

2010-06-23 03:21

manager   ~0009003

It doesn't happen on nvidia, but I'm getting a new laptop with an ati card in a few days (I hope!). So I'll try it then.

BubbaBrown

2010-06-26 15:06

reporter   ~0009149

My machine's CPU is an Intel Core i7 920, so there could be threading issues involved with Windows trying to distribute the work out at the OS level.

user6

2012-02-15 07:21

  ~0019636

Please reopen this report or PM me on the forums if this problem still exists.

Issue History

Date Modified Username Field Change
2010-06-18 16:30 BubbaBrown New Issue
2010-06-18 16:37 user6 Note Added: 0008643
2010-06-18 19:40 BubbaBrown Note Added: 0008652
2010-06-18 20:17 user6 Note Added: 0008653
2010-06-18 20:21 user6 Note Edited: 0008653
2010-06-18 21:09 BubbaBrown Note Added: 0008655
2010-06-18 21:24 user6 Note Added: 0008656
2010-06-18 21:24 user6 Note Edited: 0008656
2010-06-18 22:36 BubbaBrown Note Added: 0008663
2010-06-21 11:36 user6 Relationship added related to 0002312
2010-06-21 11:38 user6 Tag Attached: SDL-only
2010-06-22 21:23 BubbaBrown Note Added: 0008997
2010-06-22 21:47 user6 Note Added: 0008998
2010-06-23 03:21 Baughn Note Added: 0009003
2010-06-23 03:21 Baughn Status new => assigned
2010-06-23 03:21 Baughn Assigned To => Baughn
2010-06-26 15:06 BubbaBrown Note Added: 0009149
2010-06-29 07:38 user6 Category Technical => Technical -- General
2012-02-15 07:21 user6 Note Added: 0019636
2012-02-15 07:21 user6 Status assigned => resolved
2012-02-15 07:21 user6 Resolution open => fixed