i did what you suggested and Built SDL with the log uncommented which gave me this result.
1 joysticks were found.
PS4 ControllerINFO: Render commands to flush:
INFO: 1. set viewport (first=0, rect={(0, 0), 1024x576})
INFO: Render commands to flush:
INFO: 1. set viewport (first=0, rect={(0, 0), 640x360})
INFO: 2. set cliprect (enabled=false, rect={(0, 0), 0x0})
INFO: 3. clear (first=0, r=238, g=238, b=238, a=255)
INFO: 4. set draw color (first=0, r=255, g=255, b=255, a=255)
INFO: 5. copy (first=0, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 6. copy (first=96, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 7. copy (first=192, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 8. copy (first=288, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 9. copy (first=384, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 10. copy (first=480, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 11. copy (first=576, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 12. copy (first=672, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 13. copy (first=768, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 14. copy (first=864, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 15. copy (first=960, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 16. copy (first=1056, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 17. copy (first=1152, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 18. copy (first=1248, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 19. copy (first=1344, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 20. copy (first=1440, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 21. copy (first=1536, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 22. copy (first=1632, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 23. copy (first=1728, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 24. copy (first=1824, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 25. copy (first=1920, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 26. copy (first=2016, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 27. copy (first=2112, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 28. copy (first=2208, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 29. copy (first=2304, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 30. copy (first=2400, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 31. copy (first=2496, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 32. copy (first=2592, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 33. copy (first=2688, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 34. copy (first=2784, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 35. copy (first=2880, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 36. copy (first=2976, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 37. copy (first=3072, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 38. copy (first=3168, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 39. copy (first=3264, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 40. copy (first=3360, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 41. copy (first=3456, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 42. copy (first=3552, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 43. copy (first=3648, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 44. copy (first=3744, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 45. copy (first=3840, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 46. copy (first=3936, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 47. copy (first=4032, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 48. copy (first=4128, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 49. copy (first=4224, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 50. copy (first=4320, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 51. copy (first=4416, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 52. copy (first=4512, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 53. copy (first=4608, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 54. copy (first=4704, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 55. copy (first=4800, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 56. copy (first=4896, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 57. copy (first=4992, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 58. copy (first=5088, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 59. copy (first=5184, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 60. copy (first=5280, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 61. copy (first=5376, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 62. copy (first=5472, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 63. copy (first=5568, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 64. copy (first=5664, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 65. copy (first=5760, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 66. copy (first=5856, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 67. copy (first=5952, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 68. copy (first=6048, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 69. copy (first=6144, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 70. copy (first=6240, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 71. copy (first=6336, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 72. copy (first=6432, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 73. copy (first=6528, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 74. copy (first=6624, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 75. copy (first=6720, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 76. copy (first=6816, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 77. copy (first=6912, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
INFO: 78. copy (first=7008, count=1, r=255, g=255, b=255, a=255, blend=1, tex=2e6f5a0)
etc...
INFO: Render commands to flush:
INFO: 1. set viewport (first=0, rect={(0, 0), 1024x576})
INFO: 2. set cliprect (enabled=false, rect={(0, 0), 0x0})
INFO: 3. set draw color (first=0, r=255, g=255, b=255, a=255)
INFO: 4. copy (first=0, count=1, r=255, g=255, b=255, a=255, blend=0, tex=9e41c0)
It looks like it is only flushing like twice per frame, which makes it even weirder why i get no performance gain from it. i even tried to manually flush after each render call and my GPU usage still hovered around 23-25% for 60fps with 640x360 resolution