mirror of
https://github.com/citra-emu/citra.git
synced 2024-12-18 14:10:04 +00:00
android: video_core: Enable HW shadows and texture barrier on GLES.
This commit is contained in:
parent
e028eb91c0
commit
8a06463c97
@ -55,8 +55,8 @@ RasterizerOpenGL::RasterizerOpenGL()
|
||||
texture_buffer(GL_TEXTURE_BUFFER, TEXTURE_BUFFER_SIZE, false),
|
||||
texture_lf_buffer(GL_TEXTURE_BUFFER, TEXTURE_BUFFER_SIZE, false) {
|
||||
|
||||
allow_shadow = GLAD_GL_ARB_shader_image_load_store && GLAD_GL_ARB_shader_image_size &&
|
||||
GLAD_GL_ARB_framebuffer_no_attachments;
|
||||
allow_shadow = GLES || (GLAD_GL_ARB_shader_image_load_store && GLAD_GL_ARB_shader_image_size &&
|
||||
GLAD_GL_ARB_framebuffer_no_attachments);
|
||||
if (!allow_shadow) {
|
||||
LOG_WARNING(Render_OpenGL,
|
||||
"Shadow might not be able to render because of unsupported OpenGL extensions.");
|
||||
|
@ -1227,14 +1227,21 @@ float ProcTexNoiseCoef(vec2 x) {
|
||||
ShaderDecompiler::ProgramResult GenerateFragmentShader(const PicaFSConfig& config,
|
||||
bool separable_shader) {
|
||||
const auto& state = config.state;
|
||||
std::string out;
|
||||
|
||||
std::string out = R"(
|
||||
if (GLES) {
|
||||
out += R"(
|
||||
#define ALLOW_SHADOW (defined(CITRA_GLES))
|
||||
)";
|
||||
} else {
|
||||
out += R"(
|
||||
#extension GL_ARB_shader_image_load_store : enable
|
||||
#extension GL_ARB_shader_image_size : enable
|
||||
#define ALLOW_SHADOW (defined(GL_ARB_shader_image_load_store) && defined(GL_ARB_shader_image_size))
|
||||
)";
|
||||
}
|
||||
|
||||
if (separable_shader) {
|
||||
if (separable_shader && !GLES) {
|
||||
out += "#extension GL_ARB_separate_shader_objects : enable\n";
|
||||
}
|
||||
|
||||
@ -1612,7 +1619,7 @@ do {
|
||||
|
||||
ShaderDecompiler::ProgramResult GenerateTrivialVertexShader(bool separable_shader) {
|
||||
std::string out;
|
||||
if (separable_shader) {
|
||||
if (separable_shader && !GLES) {
|
||||
out += "#extension GL_ARB_separate_shader_objects : enable\n";
|
||||
}
|
||||
|
||||
@ -1655,8 +1662,8 @@ void main() {
|
||||
|
||||
std::optional<ShaderDecompiler::ProgramResult> GenerateVertexShader(
|
||||
const Pica::Shader::ShaderSetup& setup, const PicaVSConfig& config, bool separable_shader) {
|
||||
std::string out = "";
|
||||
if (separable_shader) {
|
||||
std::string out;
|
||||
if (separable_shader && !GLES) {
|
||||
out += "#extension GL_ARB_separate_shader_objects : enable\n";
|
||||
}
|
||||
|
||||
@ -1805,8 +1812,8 @@ void EmitPrim(Vertex vtx0, Vertex vtx1, Vertex vtx2) {
|
||||
|
||||
ShaderDecompiler::ProgramResult GenerateFixedGeometryShader(const PicaFixedGSConfig& config,
|
||||
bool separable_shader) {
|
||||
std::string out = "";
|
||||
if (separable_shader) {
|
||||
std::string out;
|
||||
if (separable_shader && !GLES) {
|
||||
out += "#extension GL_ARB_separate_shader_objects : enable\n\n";
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user