Hello! Unfortunately, this is issue arose while I was helping someone else debug a modded environment, so I am unable to provide reproduction steps. (Although, I have verified that the issue also theoretically exists in the base game versions listed [and it would probably be a useful patch].) Hopefully the other information is specific enough that this report can still remain useful.
When generating a system report (ex. as part of a crash report), the game calls Minecraft.fillSystemReport(). As part of this function, the game generates info about the enabled rendering extensions (report.setDetail("Render Extensions", () -> String.join(", ", RenderSystem.getDevice().getEnabledExtensions()));). However, if the crash occurs before the render system is initialized by Minecraft.<init> (such as during game initialization [see the catch blocks in net.minecraft.client.main.Main.main()]), RenderSystem.getDevice() throws IllegalStateException , causing the game to crash without emitting useful debugging info.
The game should instead opt to not generate this info when the rendering system has not been initialized. (i.e. It should be gated similar to the generation of the "GL debug messages" field, which does account for this scenario.) This would allow the report to be generated as-normal in these cases, permitting normal debugging.
(Apologies if the above symbol names/code are inexact, they were generated through decompilation.)
This may be the same problem i am having where the game crashes on start-up. But for me it ONLY happens on the latest snapshot.