|
@@ -23,6 +23,7 @@
|
|
|
#include "video_core/rasterizer_cache.h"
|
|
#include "video_core/rasterizer_cache.h"
|
|
|
#include "video_core/rasterizer_interface.h"
|
|
#include "video_core/rasterizer_interface.h"
|
|
|
#include "video_core/renderer_opengl/gl_buffer_cache.h"
|
|
#include "video_core/renderer_opengl/gl_buffer_cache.h"
|
|
|
|
|
+#include "video_core/renderer_opengl/gl_global_cache.h"
|
|
|
#include "video_core/renderer_opengl/gl_primitive_assembler.h"
|
|
#include "video_core/renderer_opengl/gl_primitive_assembler.h"
|
|
|
#include "video_core/renderer_opengl/gl_rasterizer_cache.h"
|
|
#include "video_core/renderer_opengl/gl_rasterizer_cache.h"
|
|
|
#include "video_core/renderer_opengl/gl_resource_manager.h"
|
|
#include "video_core/renderer_opengl/gl_resource_manager.h"
|
|
@@ -66,6 +67,10 @@ public:
|
|
|
static_assert(MaxConstbufferSize % sizeof(GLvec4) == 0,
|
|
static_assert(MaxConstbufferSize % sizeof(GLvec4) == 0,
|
|
|
"The maximum size of a constbuffer must be a multiple of the size of GLvec4");
|
|
"The maximum size of a constbuffer must be a multiple of the size of GLvec4");
|
|
|
|
|
|
|
|
|
|
+ static constexpr std::size_t MaxGlobalMemorySize = 0x10000;
|
|
|
|
|
+ static_assert(MaxGlobalMemorySize % sizeof(float) == 0,
|
|
|
|
|
+ "The maximum size of a global memory must be a multiple of the size of float");
|
|
|
|
|
+
|
|
|
private:
|
|
private:
|
|
|
class SamplerInfo {
|
|
class SamplerInfo {
|
|
|
public:
|
|
public:
|
|
@@ -105,7 +110,7 @@ private:
|
|
|
bool using_depth_fb = true, bool preserve_contents = true,
|
|
bool using_depth_fb = true, bool preserve_contents = true,
|
|
|
std::optional<std::size_t> single_color_target = {});
|
|
std::optional<std::size_t> single_color_target = {});
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
|
|
+ /**
|
|
|
* Configures the current constbuffers to use for the draw command.
|
|
* Configures the current constbuffers to use for the draw command.
|
|
|
* @param stage The shader stage to configure buffers for.
|
|
* @param stage The shader stage to configure buffers for.
|
|
|
* @param shader The shader object that contains the specified stage.
|
|
* @param shader The shader object that contains the specified stage.
|
|
@@ -115,7 +120,7 @@ private:
|
|
|
u32 SetupConstBuffers(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, Shader& shader,
|
|
u32 SetupConstBuffers(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, Shader& shader,
|
|
|
GLenum primitive_mode, u32 current_bindpoint);
|
|
GLenum primitive_mode, u32 current_bindpoint);
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
|
|
+ /**
|
|
|
* Configures the current textures to use for the draw command.
|
|
* Configures the current textures to use for the draw command.
|
|
|
* @param stage The shader stage to configure textures for.
|
|
* @param stage The shader stage to configure textures for.
|
|
|
* @param shader The shader object that contains the specified stage.
|
|
* @param shader The shader object that contains the specified stage.
|
|
@@ -185,6 +190,7 @@ private:
|
|
|
|
|
|
|
|
RasterizerCacheOpenGL res_cache;
|
|
RasterizerCacheOpenGL res_cache;
|
|
|
ShaderCacheOpenGL shader_cache;
|
|
ShaderCacheOpenGL shader_cache;
|
|
|
|
|
+ GlobalRegionCacheOpenGL global_cache;
|
|
|
|
|
|
|
|
Core::Frontend::EmuWindow& emu_window;
|
|
Core::Frontend::EmuWindow& emu_window;
|
|
|
|
|
|