1 Reply Latest reply on Jul 23, 2018 12:04 PM by xhuang

    Bug in pixel transfer operations (OpenGL)


      I have encountered a rather interesting bug with pixel transfer operations. I have tested this on several AMD cards from the 7000 series to the RX 480 and 580.

      The core of the problem is that when a texture is created with immutable storage, pixel transfer operations with endianness swap will always fail with GL_OUT_OF_MEMORY. A sample application is attached which attempts to isolate the problem. Compiled binary is provided for convenience as well as the source.



      - When the texture is created with mutable storage, readback works but when immutable is used it does not.

      - Also note that while the trigger is a pack operation, setting the unpack state to swap bytes also will cause the GL_OUT_OF_MEMORY error. The error is not real, as can be demostrated with the attached sample and source code.

      - The sample works fine on all other drivers I have tried.