<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1020</bug_id>
          
          <creation_ts>2014-06-12 17:47:12 +0200</creation_ts>
          <short_desc>First MSAA FBO frame on a mac osx nvidia card not antialiased</short_desc>
          <delta_ts>2015-10-04 02:46:38 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>macosx</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>macosx</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>1206</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Skinner">askinner</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>---</cf_type>
          <cf_scm_refs>ab07820e346f23aabc9d9364b7205017422cfaed</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3964</commentid>
    <comment_count>0</comment_count>
      <attachid>616</attachid>
    <who name="Andy Skinner">askinner</who>
    <bug_when>2014-06-12 17:47:12 +0200</bug_when>
    <thetext>Created attachment 616
Java program to reproduce.

We noticed that, on one person&apos;s Mac with an NVIDIA card, the first frame in a context is not correctly antialiased.  We create a GLJPanel, asking for 8 samples.

Any redrawing corrects it.

There are some similarities to Bug 841, though we don&apos;t get junk in the first frame.

What we do see is &quot;partial antialiasing&quot;.  What I mean by that is that there are pixels drawn that would not have been touched with 0 samples, but which are fully colored.  It is possible this is from some other issue.

We reproduced it in the attached program.

The mac uses an &quot;NVIDIA GeForce GT 330M OpenGL Engine&quot;.  Version: &quot;2.1 NVIDIA-8.24.13 310.90.9.05f01&quot;.  OS X 10.9.3

When we use a GLCanvas instead of GLJPanel, the first frame is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4140</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-30 19:33:51 +0200</bug_when>
    <thetext>Also related: Bug 975.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4143</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-30 20:03:46 +0200</bug_when>
    <thetext>Comparing results w/ already existing test cases:
  com.jogamp.opengl.test.junit.jogl.acore.TestGLReadBuffer01GLJPanelAWT
  com.jogamp.opengl.test.junit.jogl.acore.TestGLReadBuffer01GLCanvasAWT
  com.jogamp.opengl.test.junit.jogl.acore.TestGLReadBuffer01GLWindowNEWT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4146</commentid>
    <comment_count>3</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-30 22:06:02 +0200</bug_when>
    <thetext>Reproduced:

GNU/Linux NV: No artifacts (proper MSAA in 1st frame)
  &lt;http://jogamp.org/files/screenshots/bug1020/linux-nvidia/&gt;

OSX (any version):
  - UserVertFlip: No MSAA in 1st frame
  - DefVertFlip: Incomplete MSAA in 1st frame
  &lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-NvidiaGeForce320M/&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4147</commentid>
    <comment_count>4</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-31 04:29:32 +0200</bug_when>
    <thetext>Reproduced on OSX Nvidia GT650M
  &lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M/&gt;

Description:

See 1st frame (user-flip, aliasing artifacts):

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0000-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;

where 2nd frame is fine:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0001-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;

...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4148</commentid>
    <comment_count>5</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-31 04:32:32 +0200</bug_when>
    <thetext>Reproduction on OSX Nvidia GT650M (Comment 4) was done on a 
Macbook Pro w/ Intel HD4000 and NV Optimus, Optimus enabled.

Forcing the Intel HD4000 (disabling Optimus with 
tool gfxCardStatus &lt;http://gfx.io/&gt;)
shows _CORRECT_ results:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000/&gt;

1st Frame:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0000-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;

2nd Frame:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0001-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4149</commentid>
    <comment_count>6</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-31 04:35:36 +0200</bug_when>
    <thetext>Excessive review of our FBO MSAA blit -&gt; FBO Sink
and GLJPanel resulted in finding no errors.

Due to result of Comment 5 (working IntelHD 4000)
I conclude this is a driver bug of OSX/Nvidia for GT650M and 320M.

Remedy would be to render the initial frame twice ..

We shall contemplate whether this is worth another quirk 
entry for OSX/Nvidia .. ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4150</commentid>
    <comment_count>7</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-31 05:18:31 +0200</bug_when>
    <thetext>Further analysis of the OSX/NV bug shows
that this is related to a never-written FBO blit.

If initializing the FBO w/ glClear(GL_COLOR_BUFFER)
this issue goes away.

Currently we cannot inject this workaround into FBObject
since it is too low-level, i.e. we don&apos;t know when it&apos;s 
first bind operation happens - i.e. user is ready.

It is possible to inject this to the GLFBOffscreenDrawable though ..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4151</commentid>
    <comment_count>8</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-08-31 05:56:25 +0200</bug_when>
    <thetext>ab07820e346f23aabc9d9364b7205017422cfaed
    
    OSX/Nvidia&apos;s FBO needs to be cleared before blitting,
    otherwise first MSAA frame lacks antialiasing.
    
    GLFBODrawableImpl.initialize(..) can clear
    GL.GL_COLOR_BUFFER_BIT and GL.GL_DEPTH_BUFFER_BIT, if used.
    
    FBObject cannot clear the buffer(s) due to it&apos;s low-level API,
    i.e. it cannot know when the first bind occurs _after_ user
    completed FBO setup (attaching buffers).
    
    Hence plain FBObject usage required manual injection
    of glClear(..) after setup as demonstrated in GLJPanel.
    
    We may need to elaborate in this case,
    i.e. add an FBObject API entry like &apos;fbo.postInitNotify()&apos;.

See results:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M-FIXED/&gt;

1st Frame:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M-FIXED/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0000-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;

2nd Frame:

&lt;http://jogamp.org/files/screenshots/bug1020/osx10_9_4-IntelHD4000_NvidiaGT650M-FIXED/TestGLReadBuffer01GLJPanelAWT.test11_MSAA8_UsrFlip-n0001-awt-usr000-GL2___-hw-fbobject-Bdbl-Frgb__Irgba8888-D24-St00-Sa08_default-0640x0480.png&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>616</attachid>
            <date>2014-06-12 17:47:12 +0200</date>
            <delta_ts>2014-06-12 17:47:12 +0200</delta_ts>
            <desc>Java program to reproduce.</desc>
            <filename>JOGLMSAA.java</filename>
            <type>application/octet-stream</type>
            <size>4101</size>
            <attacher name="Andy Skinner">askinner</attacher>
            
              <data encoding="base64">aW1wb3J0IGphdmEuYXd0Lio7CmltcG9ydCBqYXZhLmF3dC5ldmVudC4qOwppbXBvcnQgamF2YXgu
c3dpbmcuKjsKCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuKjsKaW1wb3J0IGphdmF4Lm1lZGlh
Lm9wZW5nbC5hd3QuKjsKaW1wb3J0IGphdmEudXRpbC5SYW5kb207CgpwdWJsaWMgY2xhc3MgSk9H
TE1TQUEgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBHTEV2ZW50TGlzdGVuZXIgewoKICAgIEdM
QXV0b0RyYXdhYmxlIGZDYW52YXM7CgogICAgc3RhdGljIGJvb2xlYW4gc1VzZUdMQ2FudmFzID0g
ZmFsc2U7CiAgICBwcml2YXRlIGludCBfbnVtVHJpYW5nbGVzOwogICAgcHJpdmF0ZSBmbG9hdFtd
IF92ZXJ0aWNlczsKICAgIHByaXZhdGUgZmxvYXRbXSBfY29sb3JzOwoKCiAgICBKT0dMTVNBQShp
bnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkgewogICAgICAgIHNldEJvdW5kcyh4LCB5LCB3LCBo
KTsKICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKICAgICAg
ICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgewogICAg
ICAgICAgICAgICAgICAgIGlmIChmQ2FudmFzICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgZkNhbnZhcy5kZXN0cm95KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIFN5c3RlbS5leGl0KDApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
KTsKCiAgICAgICAgLy9zZXRMYXlvdXQobnVsbCk7CiAgICAgICAgTXlQYW5lbCBwYW5lbCA9IG5l
dyBNeVBhbmVsKG5ldyBCb3JkZXJMYXlvdXQoKSk7CiAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5h
ZGQocGFuZWwsIEJvcmRlckxheW91dC5DRU5URVIpOwoKICAgICAgICBHTENhcGFiaWxpdGllcyBj
YXBzID0gbmV3IEdMQ2FwYWJpbGl0aWVzKG51bGwpOwogICAgICAgIGNhcHMuc2V0U2FtcGxlQnVm
ZmVycyh0cnVlKTsKICAgICAgICBjYXBzLnNldE51bVNhbXBsZXMoOCk7CgogICAgICAgIGlmIChz
VXNlR0xDYW52YXMpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHTENhbnZhcyIp
OwogICAgICAgICAgICBmQ2FudmFzID0gbmV3IEdMQ2FudmFzKGNhcHMpOwogICAgICAgIH0KICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHTEpQYW5lbCIpOwog
ICAgICAgICAgICBmQ2FudmFzID0gbmV3IEdMSlBhbmVsKGNhcHMpOwogICAgICAgIH0KICAgICAg
ICBmQ2FudmFzLmFkZEdMRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICAgICBmQ2FudmFzLnNldEF1
dG9Td2FwQnVmZmVyTW9kZSh0cnVlKTsKICAgICAgICBwYW5lbC5hZGQoKENvbXBvbmVudClmQ2Fu
dmFzLCBCb3JkZXJMYXlvdXQuQ0VOVEVSKTsKCiAgICAgICAgUmFuZG9tIHIgPSBuZXcgUmFuZG9t
KCk7CiAgICAgICAgX251bVRyaWFuZ2xlcyA9IDIwOwogICAgICAgIF9jb2xvcnMgPSBuZXcgZmxv
YXRbX251bVRyaWFuZ2xlcyozXTsKICAgICAgICBfdmVydGljZXMgPSBuZXcgZmxvYXRbX251bVRy
aWFuZ2xlcyozKjNdOwogICAgICAgIGludCBjaSA9IDA7CiAgICAgICAgaW50IHZpID0gMDsKICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IF9udW1UcmlhbmdsZXM7ICsraSkgewogICAgICAgICAg
ICBfY29sb3JzW2NpKytdID0gci5uZXh0RmxvYXQoKTsKICAgICAgICAgICAgX2NvbG9yc1tjaSsr
XSA9IHIubmV4dEZsb2F0KCk7CiAgICAgICAgICAgIF9jb2xvcnNbY2krK10gPSByLm5leHRGbG9h
dCgpOwogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDM7ICsraikgewogICAgICAgICAg
ICAgICAgX3ZlcnRpY2VzW3ZpKytdID0gci5uZXh0RmxvYXQoKSoyLjBmIC0gMS4wZjsKICAgICAg
ICAgICAgICAgIF92ZXJ0aWNlc1t2aSsrXSA9IHIubmV4dEZsb2F0KCkqMi4wZiAtIDEuMGY7CiAg
ICAgICAgICAgICAgICBfdmVydGljZXNbdmkrK10gPSByLm5leHRGbG9hdCgpKjIuMGYgLSAxLjBm
OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldEJvdW5k
cyhpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkgewogICAgCVN5c3RlbS5lcnIucHJpbnRsbigi
Ym91bmRzICIgKyB4ICsgIiAiICsgeSArICIgIiArIHcgKyAiICIgKyBoKTsKICAgIAlzdXBlci5z
ZXRCb3VuZHMoeCwgeSwgdywgaCk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBjbGFzcyBNeVBhbmVs
IGV4dGVuZHMgSlBhbmVsIHsKICAgIAlwdWJsaWMgTXlQYW5lbChMYXlvdXRNYW5hZ2VyIGxheW91
dCkgewogICAgCQlzdXBlcihsYXlvdXQpOwogICAgCX0KICAgIAkKICAgIAlwdWJsaWMgdm9pZCBz
ZXRCb3VuZHMoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpIHsKCSAgICAJLy9TeXN0ZW0uZXJy
LnByaW50bG4oIm15cGFuZWwgYm91bmRzICIgKyB4ICsgIiAiICsgeSArICIgIiArIHcgKyAiICIg
KyBoKTsKCSAgICAJc3VwZXIuc2V0Qm91bmRzKHgsIHksIHcsIGgpOwoJICAgIH0KICAgIH0KICAg
IAogICAgcHVibGljIHZvaWQgaW5pdChHTEF1dG9EcmF3YWJsZSBkKSB7CiAgICAgICAgZmluYWwg
R0wyIGdsID0gZC5nZXRHTCgpLmdldEdMMigpOwogICAgICAgIGdsLmdsQ2xlYXJDb2xvcigxLjBm
LCAxLjBmLCAwLjVmLCAxLjBmKTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBkaXNwbGF5KEdMQXV0
b0RyYXdhYmxlIGQpIHsKICAgICAgICBmaW5hbCBHTDIgZ2wgPSBkLmdldEdMKCkuZ2V0R0wyKCk7
CiAgICAgICAgZ2wuZ2xDbGVhckNvbG9yKDEuMGYsIDEuMGYsIDAuNWYsIDEuMGYpOwogICAgICAg
IGdsLmdsQ2xlYXJEZXB0aCgxLjApOwogICAgICAgIGdsLmdsQ2xlYXIoR0wuR0xfQ09MT1JfQlVG
RkVSX0JJVCB8IEdMLkdMX0RFUFRIX0JVRkZFUl9CSVQpOwogICAgICAgIGdsLmdsTG9hZElkZW50
aXR5KCk7CgogICAgICAgIGdsLmdsQmVnaW4oR0wuR0xfVFJJQU5HTEVTKTsKICAgICAgICBpbnQg
Y2kgPSAwOwogICAgICAgIGludCB2aSA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBf
bnVtVHJpYW5nbGVzOyArK2kpIHsKICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKF9jb2xvcnNbY2kr
K10sIF9jb2xvcnNbY2krK10sIF9jb2xvcnNbY2krK10pOwogICAgICAgICAgICBnbC5nbFZlcnRl
eDNmKF92ZXJ0aWNlc1t2aSsrXSwgX3ZlcnRpY2VzW3ZpKytdLCBfdmVydGljZXNbdmkrK10pOwog
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKF92ZXJ0aWNlc1t2aSsrXSwgX3ZlcnRpY2VzW3ZpKytd
LCBfdmVydGljZXNbdmkrK10pOwogICAgICAgICAgICBnbC5nbFZlcnRleDNmKF92ZXJ0aWNlc1t2
aSsrXSwgX3ZlcnRpY2VzW3ZpKytdLCBfdmVydGljZXNbdmkrK10pOwogICAgICAgIH0KICAgICAg
ICBnbC5nbEVuZCgpOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHJlc2hhcGUoR0xBdXRvRHJhd2Fi
bGUgZCxpbnQgeCxpbnQgeSxpbnQgdyxpbnQgaCkgewogICAgICAgIGZpbmFsIEdMMiBnbCA9IGQu
Z2V0R0woKS5nZXRHTDIoKTsKCWdsLmdsVmlld3BvcnQoeCwgeSwgdywgaCk7CiAgICB9CgogICAg
cHVibGljIHZvaWQgZGlzcG9zZShHTEF1dG9EcmF3YWJsZSBkKSB7CiAgICB9CgogICAgcHVibGlj
IHZvaWQgdXBkYXRlKEdyYXBoaWNzIGcpIHsKICAgICAgICBwYWludChnKTsKICAgIH0KCiAgICBw
dWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgc1VzZUdMQ2Fu
dmFzID0gZmFsc2U7CiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICBp
ZiAoYXJnc1swXS5lcXVhbHMoImMiKSkgewogICAgICAgICAgICAgICAgc1VzZUdMQ2FudmFzID0g
dHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU3dpbmdVdGlsaXRpZXMuaW52
b2tlTGF0ZXIobmV3IFJ1bm5hYmxlKCkgewogICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVu
KCkgewogICAgICAgICAgICAgICAgICAgIGZpbmFsIEpPR0xNU0FBIGZyYW1lID0gbmV3IEpPR0xN
U0FBKDQwMCwgNDAwLCA2MDAsIDQwMCk7CiAgICAgICAgICAgICAgICAgICAgZnJhbWUuc2V0Vmlz
aWJsZSh0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICB9Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>