Общее решение состоит в том, чтобы не делать розыгрыши, как много вызовов отрисовки.Атласы текстур с помощью текстур массивов, создания экземпляров и различных других методов делают это возможным.
Или просто использовать тот факт, что современные компьютеры имеют гораздо большую производительность ЦП, чем консоли.Или даже лучше, сделайте себя привязанным к GPU.В конце концов, если ваш процессор является вашим узким местом, то это означает, что у вас есть запасная мощность графического процессора.Используйте его.
OpenCL не является «решением» всего, что связано с этим.OpenCL не имеет доступа ни к одной из многих вещей, которые нужно было бы сделать, чтобы фактически использовать GPU для рендеринга.Чтобы использовать OpenCL для графики, вам не нужно использовать растеризатор / клипер графического процессора, это специализированные буферы для передачи информации от этапа к этапу, кэш после T & L или аппаратное обеспечение смешивания / сравнения глубины / трафарета / и т.д.Все это - фиксированная функция, чрезвычайно быстрая и специализированная.И полностью недоступен для OpenCL.
И даже в этом случае он фактически не делает его более не связанным с процессором.Вы все еще должны упорядочить то, что вы делаете, и так далее.И у вас, вероятно, не будет доступа к графическому FIFO, поэтому вам придется найти другой способ подачи своих шейдеров.
Или, другими словами, это «проблема», которая нене нужно решать.