Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-81298

Finalize QShader serialization format (.qsb files) for 5.x



    • Task
    • Resolution: Done
    • P2: Important
    • 5.15
    • 5.15
    • Qt RHI
    • None


      The QShader serialization format is based on QDataStream, while the contained QShaderDescription is stored as CBOR (in later 5.15; 5.14 and earlier 5.15 used to use binary JSON instead). The end result is qCompressed.

      Before 6.0 is out, the format needs to be finalized.

      • Should use a plain and simple QDataStream approach for QShaderDescription as well. CBOR is an overkill. (historically, binary JSON & CBOR are used because in the initial prototype back from 2017 it was easier to piggyback the serialization on the JSON document (which in the first place exists for reasons other than binary serialization); there is no reason to keep this serialization approach for Qt 6: reading/writing to a QDataStream instead is straightforward)
      • Support for the two older serialization versions (1. with binary JSON 2. without the native resource binding map) can be removed in 6.0. (not in 5.x).
      • Perhaps version 3 too.
      • to roll this out, we can introduce qsb format version 4 in 5.15, while keeping support for all other formats as well. All .qsb files in qtbase, qtdeclarative, qtquickcontrols2, etc. should then be rebuilt. Qt 6 can then safely remove support for versions < 4.

      The dev (6.0) work is handled in QTBUG-81346


        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              lagocs Laszlo Agocs
              lagocs Laszlo Agocs
              0 Vote for this issue
              1 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes