#1 2014-06-08 17:35:01

Cheeki_Breeki
Member

Bug with water

What's this?

http://cs619317.vk.me/v619317829/b613/eIiNCSJLEu0.jpg

Graphics card: NVidia 9600 GT

Driver: 3.3.0

Processor: AMD Athlon II X3 425 (2.71 gHz)

Memory: 2 gb

GLSL: 3.30 NVIDIA via Cg compiler

Rendering using the OpenGL sahder path.

Last edited by Cheeki_Breeki (2014-06-08 18:25:55)

Offline

#2 2014-06-08 19:31:39

RaZgRiZ
Moderator

Re: Bug with water

Ḩ͚̳̺̞ͪE̺̫ͭ ͍̩͉̔̚À̛̯̮́W̼͙̠̼͛̓A̰̭̙͇̣̙̔ͬ̚K͉̰͙͖̪ͅE̛̝̙̠̾ͤN̰͍̲̠̩͎̒̆̽ͪ̈́͒̒S̳͎̪͉̲̩ͬ̃
̳̖͖̦̦T̲̱̫͉̝̺̒̓̋̆̀H̭̺̲̤̭̙ͮͭͯI҉̻S͙͉̙͕͖̤ͪ ͗͏͉̙̣W̖̻̘̩ͦ͂̏̾̐͡O͇̯͖̭ͥͦ̋ͬ̾Ȑ̭̲̫͛̇L̪͖̝̲̟ͅD̮̭̜̦̗͓͈ ̂͗̑̊I̢͇͚̦͉͔͛̆ͦS̓̓̎ͥ͏̗͍̻̻̙̼̪
̯̼ͫN̓Ò̡̺͓̮͇̖͌̿ͩ̋̂W͇̜̱̻̥̲̓͛̉ ̣̻͔͓̲͙̟͛̑ͥ͛ͮH̜̰̼͐ͤ̃͐͌͋͟I͍̻̍͞S̶̻͙̟͍̲̬̓̑ ̛̖ͦ̏̑͆ͦ͋̿O̡̳͚͈͚̰ͮ̾W̫̙̌ͯ͊̓͂͟N̲̪̩͕̦̦͔̂̌̈͘

Last edited by RaZgRiZ (2014-06-08 19:32:44)

Offline

#3 2014-07-13 23:40:57

chasester1
Member

Re: Bug with water

I have the same error .. on my mac book pro.

When looking at water black artifacts stain the screen, looking up at the skybox clears them.

Model Identifier:                   MacBook6,1
Processor Intel:                 Core 2 Duo
Processor Name:            Intel Core 2 Duo
Processor Speed:            2.26 GHz
Gfx Card:                          NVIDIA GeForce 9400M

Last edited by chasester1 (2014-07-13 23:47:27)

Offline

#4 2014-10-13 23:36:45

spikeymikey0196
Member

Re: Bug with water

chasester1 wrote:

I have the same error .. on my mac book pro.

When looking at water black artifacts stain the screen, looking up at the skybox clears them.

Model Identifier:                   MacBook6,1
Processor Intel:                 Core 2 Duo
Processor Name:            Intel Core 2 Duo
Processor Speed:            2.26 GHz
Gfx Card:                          NVIDIA GeForce 9400M

Looks alot like screen tearing to me :/ perhaps its due a problem with reflections? :3 sauerbraten used to give me this problem until i altered the reflections.

Offline

#5 2017-01-27 01:11:19

rransom.8774
Member

Re: Bug with water

This also occurs with an AMD card; it appears when the screen-space reflection code tries to fetch a pixel that isn't on the screen.

(Renderer: Gallium 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.8.0) (X.Org)
Driver: 4.1 (Core Profile) Mesa 11.2.0
GLSL: 4.10
)

Offline

#6 2017-01-27 03:20:06

rransom.8774
Member

Re: Bug with water

(I'm using Tesseract r2128 on Ubuntu xenial/16.04 LTS.)

I have been able to reproduce this bug twice on the level ‘reflection’, as follows:

* Enable ‘Morphological AA’ (high) and ‘FXAA’ (medium) before loading the level.

* Disable those options after loading the level.

* Look around for a few seconds; irregular black lines (horizontal and/or vertical; always in multiple-pixel square units) may appear on the display.

* If those black artifacts have already appeared, look down at the water pool in the center of the bottom floor.  The water bug will then appear.  If the black line-ish artifacts have not appeared, the water bug will not appear either.

I still can't reproduce the bug reliably, and the black lines at least have appeared in the past without mucking with the AA options first.

The black line-ish artifacts always appear in similar locations on the screen.  I have seen them appear at least twice on the bottom and left interior of a rectangle in the top-right corner of the screen about 1/5 the width and height of the screen.

Offline

#7 2017-01-27 06:44:42

rransom.8774
Member

Re: Bug with water

rransom.8774 wrote:

I still can't reproduce the bug reliably, and the black lines at least have appeared in the past without mucking with the AA options first.

It just happened again, once after fiddling with AA settings, once on its own with no apparent cause.  The latter time, it was definitely at the edge of a block of 1/10 of the screen.

This time, I experimented with the water reflection a bit; the water bug is definitely copying those bad black pixels around rather than creating them from nothing.  After I looked up at the skylight to erase all the blackness, looking back at the water didn't bring it back.

Offline

#8 2017-01-28 10:36:17

rransom.8774
Member

Re: Bug with water

Setting debugstencil to 1 when the black crud is visible makes it go away.  (I haven't tried the other bits yet.)  Turning on debugdepth and debugao didn't affect the blackness or show anything suspicious associated with it.

Offline

#9 2017-01-29 13:09:56

rransom.8774
Member

Re: Bug with water

I tried patching viewstencil() to save and restore all of the stencil-related GL state (enabled or not, Stencil{Func,Op,Mask}Separate for front and back, and ClearStencil value), and it still makes the bug go away, without even a flicker of anything suspicious in the stencil buffer (this time I used debugstencil=255).  I'll look for a way to dump the HDR color buffer to disk next.

This bug happens fairly often on my system, usually soon after I start the game or cause it to reinitialize the graphics system.  I have seen flashes of yellow or green (G=1.0) in the affected tile as the blackness appears, and I think the pixels which became black flashed to white or cyan (G,B=1.0) first as well.

Offline

#10 2017-01-30 23:17:45

rransom.8774
Member

Re: Bug with water

I've given up on dumping buffers to disk for now; I can't find a sufficiently general way to guarantee that I'll get at the same representation that the video hardware is using, and the problem must be a special floating-point value (infinity or NaN) to stick in one or more buffers through multiple frames and spread.

On my desktop system, hdrtex is an RGB 11/11/10 packed-float image, and clearing that image is sufficient to erase the crud, so it's a special value in that buffer; if it were infinity, it would have to be +inf in a non-alpha channel, and I would expect it to render as white rather than black and spread to the bloom buffer as well; it doesn't seem to.  Therefore, it must be NaN.

I tried to confirm that by explicitly checking for NaN in a shader.  I haven't figured out the rendering path fully yet, but I modified scalelinear to color NaNs magenta and switched to a lower screen resolution to use that shader.  I saw one flicker of magenta with the right size and shape to be the black glitch, but it vanished immediately.  I'm out of ideas for how to trace this without perturbing it out of existence, and I would like to trace where the NaNs are coming from if possible rather than merely brute-force clobbering them (either with an occasional glClearColor or an explicit test in a shader).

I've tested this on a laptop with other recent AMD graphics hardware (same OS), and had the same black crud appear (as lines on the screen, without water present).  I don't have non-AMD hardware to test on.


Can any other users report whether water reflection is still spontaneously producing this black crud with a recent Subversion revision?  If it isn't, an occasional glClearColor of hdrfbo is probably acceptable as a fix.

Offline

Board footer