Skip to content
Snippets Groups Projects
  1. Nov 07, 2017
    • Lars Knoll's avatar
      Rework resource handling · 252d2e5f
      Lars Knoll authored
      
      Rework the way the QResourceManager allocates and manages
      it's resources. Get rid of the huge pre-allocated freelist,
      and instead merge it with the counter field (that is now
      always a quintptr large).
      
      Give QHandle a direct pointer to it's data in addition to
      the counter. This makes QHandle 8 or 16 bytes large, but
      speeds up access to it's data and gives more safety on the
      counter as that one now always has at least 31 bits.
      
      Counter and the linked freelist use the same memory location.
      To avoid potential conflicts, make sure the counter is always
      an odd number, so it can't be a valid pointer.
      
      Do not use INDEXBITS anymore, the resource manager can now
      always allocate as many resources as we have RAM available
      and will grow with the required use (and not allocate fixed
      memory upfront).
      
      This change reduces the memory consumption of the qardboard
      example from a bit above 40 to 10MB.
      
      Change-Id: I514f2d3f957f8635098fb88342e42e3361456340
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      252d2e5f
    • Kevin Ottens's avatar
      Deal with trailing spaces and crlf · 391fe1d2
      Kevin Ottens authored
      
      We ended up having corrupted meshes if the application which exported
      the OBJ was adding trailing white spaces. Also make sure we got a test
      case using crlf for end of lines.
      
      Change-Id: Iace9dbc3d0d124fefe9e3350d396fdf26555cd17
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      391fe1d2
  2. Oct 20, 2017
  3. Oct 19, 2017
  4. Oct 18, 2017
  5. Oct 13, 2017
  6. Oct 09, 2017
    • Harald Vistnes's avatar
      Render next frame if texture data is not available · 3532ac70
      Harald Vistnes authored
      
      Texture data from generators may not be available in the current frame and
      the next frame should be rendered immediately, even in OnDemand rendering.
      The problem was that this information was not propagated back to the
      renderer, it was just silently ignored inside
      GraphicsContext::setParameters. Added a bool return type to
      GraphicsContext::setParameters so that the renderer could check for
      errors.
      
      Task-number: QTBUG-63561
      Task-number: QTBUG-59752
      Change-Id: I18fb6f8236bf47d3eeab07d879dffaa599665e6b
      Reviewed-by: default avatarPaul Lemire <paul.lemire@kdab.com>
      3532ac70
  7. Oct 06, 2017
    • Liang Qi's avatar
      Merge remote-tracking branch 'origin/5.9.2' into 5.9 · 6ae3debb
      Liang Qi authored
      Change-Id: I8d6bb938f7ad06fa97898f4242af76cb48efbfc5
      6ae3debb
    • Oswald Buddenhagen's avatar
      Bump version · 7eeed53c
      Oswald Buddenhagen authored
      Change-Id: Ib54e714e9152ac669441d0067ceb27f5b29ca436
      7eeed53c
    • Paul Lemire's avatar
      Fix race in renderer · f8e25b8a
      Paul Lemire authored
      
      All buffers are uploaded to GPU before the frame submission takes place.
      If during frame submission we check for a CPU buffer whether it's dirty, we end up
      (rightfully) with a race condition as we are preparing for frame n+1 already.
      There must have been a left over when the above changes were made as the
      UBO/SSBO code paths would, during rendering, check whether a CPU buffer was
      dirty, and if so try to upload, causing a race.
      Removed these code paths which aren't needed.
      
      Change-Id: I713a92b881335ecfb30f24bd7485a7bac29be4b7
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      f8e25b8a
  8. Oct 05, 2017
  9. Oct 03, 2017
  10. Sep 29, 2017
  11. Sep 28, 2017
  12. Sep 27, 2017
  13. Sep 26, 2017
  14. Sep 24, 2017
    • Anders Hafreager's avatar
      Copy size and pixelRatio when switching activeFrameGraph · 72e80520
      Anders Hafreager authored
      
      Copy externalRenderTargetSize and surfacePixelRatio from
      old to new surfaceSelector when setting activeFrameGraph
      on RenderSettings. Previously, when switching
      activeFrameGraph, surface was copied from old to new
      surfaceSelector, but these other properties were not. The
      rendered image was then stretched until window is resized
      again.
      
      Change-Id: I62b78da05c764f981813ab96b9a769bae7d786b2
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      72e80520
  15. Sep 22, 2017
  16. Sep 15, 2017
  17. Sep 12, 2017
    • Mike Krus's avatar
      Fix crash on surface selector unit test · bf5fd7a7
      Mike Krus authored
      
      Change order of local variables affecting the destructions order
      and making sure window outlives the surface selector
      
      Change-Id: Ia04f110656f4cc563643fb056ae491ffadf3a8b4
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      bf5fd7a7
    • Mike Krus's avatar
      Fix bounding sphere picking · d88f9796
      Mike Krus authored
      
      In some cases, the list of pickable objects may contain entities that don’t have an object picker (or not parent has).
      Now filter the pick results to only keep entities which either have an object picker or are children of an entity that does.
      
      Added unit test which now passes
      
      Change-Id: I930c3d60cf2d19e845fe6c0de904c53b93ebe8be
      Reviewed-by: default avatarKevin Ottens <kevin.ottens@kdab.com>
      d88f9796
  18. Sep 11, 2017
  19. Sep 09, 2017
    • Lars Knoll's avatar
      Fix logic error · cf038f90
      Lars Knoll authored
      
      This should be removeAll instead of remove(). Remove takes an
      integer (index into the array). It compiles by chance (but doesn't
      do the right thing), as QHandle has a cast operator to int.
      
      Change-Id: If8d59a535021bab3d2553f83bef7cf769c738dd6
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      cf038f90
  20. Sep 08, 2017
    • Wieland Hagen's avatar
      Make GLTexture dirty flags atomic instead of using a mutex · 5212c27c
      Wieland Hagen authored
      
      The mutex right now is used for controlling access to the m_dirty flags,
      and for guarding access to m_gl and other data.
      
      We don't need to use it for accessing the flags, as an atomic int will
      do just fine and relieve us of potential deadlocks. The mutex must only
      guard changes to the actual data.
      
      Task-number: QTBUG-61130
      Change-Id: Ia1f25af2233387f375c077965e901c67f972f1ec
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      5212c27c