rsx/gl/vulkan: Refactoring and partial vulkan rewrite

- Updates vulkan to use GPU vertex processing
- Rewrites vulkan to buffer entire frames and present when first available to avoid stalls
- Move more state into dynamic descriptors to reduce progam cache misses; Fix render pass conflicts before texture access
- Discards incomplete cb at destruction to avoid refs to destroyed objects
- Move set_viewport to the uninterruptible block before drawing in case cb is switched before we're ready
- Manage frame contexts separately for easier async frame management
- Avoid wasteful create-destroy cycles when sampling rtts
This commit is contained in:
kd-11 2017-08-05 00:11:14 +03:00
parent 6a707f515e
commit 00b0311c86
11 changed files with 592 additions and 802 deletions

View file

@ -149,15 +149,10 @@ void GLVertexDecompilerThread::insertOutputs(std::stringstream & OS, const std::
OS << "out vec4 front_spec_color;\n";
}
namespace
{
}
void GLVertexDecompilerThread::insertMainStart(std::stringstream & OS)
{
insert_glsl_legacy_function(OS, glsl::glsl_vertex_program);
glsl::insert_vertex_input_fetch(OS);
glsl::insert_vertex_input_fetch(OS, glsl::glsl_rules_opengl4);
std::string parameters = "";
for (int i = 0; i < 16; ++i)