I am working for small game development firm Mindware studios on currently undisclosed game for PC and X360. Unfortunately many from our past projects ended in prototype state because we were unable to find publisher for them ( some youtube videos).
My current top list:
-
Better predictability of driver actions. I do not like when the driver decides that now would be the good time to recompile shader for some values of float constants to gain few fps or do something like that. That really ruins the day (or at least beginning of it). API which would allow me to opt-out from such optimizations (where applicable), or at least say that they should be done at time I choose (without need to mess with simulating fake rendering in attempt to outsmart the driver), would be nice. The same goes for upload and management of various resources.
-
Development support for debugging stalls. If there is rendering stall (e.g. the driver is reorganizing something), i would like to get information about the reason. Chances are that I can do something to avoid it, if I have the information what happened instead of “this frame took 300ms”.
-
Reliable drivers with good memory management. If the management and amount of video memory is supposed to be transparent, the driver should be good at that. Failing FBO bind or longterm slowdown when too many textures were used in the past are not nice.
-
Ability to cache compiled shaders. I was already forced to revert to more passes (with associated performance costs) because shader compilation (and warm-up) time was becoming significant issue.
-
Support for shared uniforms or even better the EXT_bindable_uniform in core supported by all vendors.