|
@@ -19,7 +19,6 @@
|
|
|
#include "core/core.h"
|
|
#include "core/core.h"
|
|
|
#include "core/hle/kernel/process.h"
|
|
#include "core/hle/kernel/process.h"
|
|
|
#include "core/settings.h"
|
|
#include "core/settings.h"
|
|
|
-#include "video_core/const_buffer_accessor.h"
|
|
|
|
|
#include "video_core/engines/maxwell_3d.h"
|
|
#include "video_core/engines/maxwell_3d.h"
|
|
|
#include "video_core/renderer_opengl/gl_rasterizer.h"
|
|
#include "video_core/renderer_opengl/gl_rasterizer.h"
|
|
|
#include "video_core/renderer_opengl/gl_shader_cache.h"
|
|
#include "video_core/renderer_opengl/gl_shader_cache.h"
|
|
@@ -985,14 +984,13 @@ void RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, const Shader& s
|
|
|
for (u32 bindpoint = 0; bindpoint < entries.size(); ++bindpoint) {
|
|
for (u32 bindpoint = 0; bindpoint < entries.size(); ++bindpoint) {
|
|
|
const auto& entry = entries[bindpoint];
|
|
const auto& entry = entries[bindpoint];
|
|
|
Tegra::Texture::FullTextureInfo texture;
|
|
Tegra::Texture::FullTextureInfo texture;
|
|
|
- if (!entry.IsBindless()) {
|
|
|
|
|
- texture = maxwell3d.GetStageTexture(stage, entry.GetOffset());
|
|
|
|
|
- } else {
|
|
|
|
|
|
|
+ if (entry.IsBindless()) {
|
|
|
const auto cbuf = entry.GetBindlessCBuf();
|
|
const auto cbuf = entry.GetBindlessCBuf();
|
|
|
Tegra::Texture::TextureHandle tex_handle;
|
|
Tegra::Texture::TextureHandle tex_handle;
|
|
|
- tex_handle.raw =
|
|
|
|
|
- Tegra::ConstBufferAccessor::access<u32>(stage, cbuf.first, cbuf.second);
|
|
|
|
|
|
|
+ tex_handle.raw = maxwell3d.AccessConstBuffer32(stage, cbuf.first, cbuf.second);
|
|
|
texture = maxwell3d.GetTextureInfo(tex_handle, entry.GetOffset());
|
|
texture = maxwell3d.GetTextureInfo(tex_handle, entry.GetOffset());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ texture = maxwell3d.GetStageTexture(stage, entry.GetOffset());
|
|
|
}
|
|
}
|
|
|
const u32 current_bindpoint = base_bindings.sampler + bindpoint;
|
|
const u32 current_bindpoint = base_bindings.sampler + bindpoint;
|
|
|
|
|
|