test using highp floats everywhere for android

This commit is contained in:
SamGondelman 2018-05-07 11:41:19 -07:00
parent 6ec91cfa82
commit c2004debd5
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( static const std::string header(
R"SHADER(#version 410 core R"SHADER(#version 410 core
#define GPU_GL410 #define GPU_GL410
#define PRECISIONQ
#define BITFIELD int #define BITFIELD int
)SHADER"); )SHADER");
return header; return header;

View file

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

View file

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

View file

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

View file

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

View file

@ -16,8 +16,8 @@
#define LightVolumeConstRef LightVolume #define LightVolumeConstRef LightVolume
struct LightVolume { struct LightVolume {
PRECISIONQ vec4 positionRadius; vec4 positionRadius;
PRECISIONQ vec4 directionSpotCos; vec4 directionSpotCos;
}; };
bool lightVolume_isPoint(LightVolume lv) { return bool(lv.directionSpotCos.w < 0.f); } 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 // to what is provided by the uniform buffer, or the material key has the wrong bits
struct Material { struct Material {
PRECISIONQ vec4 _emissiveOpacity; vec4 _emissiveOpacity;
PRECISIONQ vec4 _albedoRoughness; vec4 _albedoRoughness;
PRECISIONQ vec4 _fresnelMetallic; vec4 _fresnelMetallic;
PRECISIONQ vec4 _scatteringSpare2Key; vec4 _scatteringSpare2Key;
}; };
uniform materialBuffer { uniform materialBuffer {
@ -64,7 +64,4 @@ const BITFIELD OCCLUSION_MAP_BIT = 0x00004000;
const BITFIELD LIGHTMAP_MAP_BIT = 0x00008000; const BITFIELD LIGHTMAP_MAP_BIT = 0x00008000;
const BITFIELD SCATTERING_MAP_BIT = 0x00010000; const BITFIELD SCATTERING_MAP_BIT = 0x00010000;
#ifdef GL_ES
precision lowp float;
#endif
<@endif@> <@endif@>

View file

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

View file

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