Merge pull request #13117 from SamGondelman/android

Test highp floats for Android
This commit is contained in:
John Conklin II 2018-05-09 14:36:51 -07:00 committed by GitHub
commit 75164201d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 25 additions and 31 deletions

View file

@ -17,7 +17,6 @@ std::string GL41Backend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 410 core
#define GPU_GL410
#define PRECISIONQ
#define BITFIELD int
)SHADER");
return header;

View file

@ -18,7 +18,6 @@ std::string GL45Backend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 450 core
#define GPU_GL450
#define PRECISIONQ
#define BITFIELD int
)SHADER"
#ifdef GPU_SSBO_TRANSFORM_OBJECT

View file

@ -17,10 +17,9 @@ std::string GLESBackend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 310 es
#extension GL_EXT_texture_buffer : enable
precision lowp float; // check precision 2
precision lowp samplerBuffer;
precision lowp sampler2DShadow;
#define PRECISIONQ highp
precision highp float;
precision highp samplerBuffer;
precision highp sampler2DShadow;
#define BITFIELD highp int
)SHADER");
return header;

View file

@ -34,7 +34,7 @@ vec3 getLightIrradiance(Light l) { return lightIrradiance_getIrradiance(l.irradi
// Light Ambient
struct LightAmbient {
PRECISIONQ vec4 _ambient;
vec4 _ambient;
SphericalHarmonics _ambientSphere;
mat4 transform;
};

View file

@ -14,9 +14,9 @@
#define LightIrradianceConstRef LightIrradiance
struct LightIrradiance {
PRECISIONQ vec4 colorIntensity;
vec4 colorIntensity;
// falloffRadius, cutoffRadius, falloffSpot, spare
PRECISIONQ vec4 attenuation;
vec4 attenuation;
};

View file

@ -16,8 +16,8 @@
#define LightVolumeConstRef LightVolume
struct LightVolume {
PRECISIONQ vec4 positionRadius;
PRECISIONQ vec4 directionSpotCos;
vec4 positionRadius;
vec4 directionSpotCos;
};
bool lightVolume_isPoint(LightVolume lv) { return bool(lv.directionSpotCos.w < 0.f); }

View file

@ -15,10 +15,10 @@
// to what is provided by the uniform buffer, or the material key has the wrong bits
struct Material {
PRECISIONQ vec4 _emissiveOpacity;
PRECISIONQ vec4 _albedoRoughness;
PRECISIONQ vec4 _fresnelMetallic;
PRECISIONQ vec4 _scatteringSpare2Key;
vec4 _emissiveOpacity;
vec4 _albedoRoughness;
vec4 _fresnelMetallic;
vec4 _scatteringSpare2Key;
};
uniform materialBuffer {
@ -64,7 +64,4 @@ const BITFIELD OCCLUSION_MAP_BIT = 0x00004000;
const BITFIELD LIGHTMAP_MAP_BIT = 0x00008000;
const BITFIELD SCATTERING_MAP_BIT = 0x00010000;
#ifdef GL_ES
precision lowp float;
#endif
<@endif@>

View file

@ -16,15 +16,15 @@
#define SphericalHarmonicsConstRef SphericalHarmonics
struct SphericalHarmonics {
PRECISIONQ vec4 L00;
PRECISIONQ vec4 L1m1;
PRECISIONQ vec4 L10;
PRECISIONQ vec4 L11;
PRECISIONQ vec4 L2m2;
PRECISIONQ vec4 L2m1;
PRECISIONQ vec4 L20;
PRECISIONQ vec4 L21;
PRECISIONQ vec4 L22;
vec4 L00;
vec4 L1m1;
vec4 L10;
vec4 L11;
vec4 L2m2;
vec4 L2m1;
vec4 L20;
vec4 L21;
vec4 L22;
};
vec4 sphericalHarmonics_evalSphericalLight(SphericalHarmonicsConstRef sh, vec3 direction) {

View file

@ -14,10 +14,10 @@
<@func declareLightingModel()@>
struct LightingModel {
PRECISIONQ vec4 _UnlitEmissiveLightmapBackground;
PRECISIONQ vec4 _ScatteringDiffuseSpecularAlbedo;
PRECISIONQ vec4 _AmbientDirectionalPointSpot;
PRECISIONQ vec4 _ShowContourObscuranceWireframe;
vec4 _UnlitEmissiveLightmapBackground;
vec4 _ScatteringDiffuseSpecularAlbedo;
vec4 _AmbientDirectionalPointSpot;
vec4 _ShowContourObscuranceWireframe;
};
uniform lightingModelBuffer{