Circle UBO fix (#1176)

This commit is contained in:
mwilsnd
2023-05-25 13:50:19 -05:00
committed by Bart Louwers
parent 2c53c138c8
commit a76cec8689
5 changed files with 19 additions and 7 deletions

View File

@@ -14,13 +14,15 @@ struct ShaderSource<BuiltIn::CircleShader, gfx::Backend::Type::OpenGL> {
out vec3 v_data;
layout (std140) uniform CircleDrawableUBO {
mat4 u_matrix;
vec2 u_extrude_scale;
highp mat4 u_matrix;
highp vec2 u_extrude_scale;
lowp vec2 pad2_;
};
layout (std140) uniform CirclePaintParamsUBO {
highp float u_camera_to_center_distance;
lowp float u_device_pixel_ratio;
lowp vec2 pad3_;
};
layout (std140) uniform CircleEvaluatedPropsUBO {
@@ -33,6 +35,7 @@ layout (std140) uniform CircleEvaluatedPropsUBO {
lowp float u_stroke_opacity;
bool u_scale_with_map;
bool u_pitch_with_map;
lowp float pad0_;
};
layout (std140) uniform CircleInterpolateUBO {
@@ -43,6 +46,7 @@ layout (std140) uniform CircleInterpolateUBO {
lowp float u_stroke_color_t;
lowp float u_stroke_width_t;
lowp float u_stroke_opacity_t;
lowp float pad1_;
};
#ifndef HAS_UNIFORM_u_color
@@ -160,6 +164,7 @@ layout (std140) uniform CircleEvaluatedPropsUBO {
lowp float u_stroke_opacity;
bool u_scale_with_map;
bool u_pitch_with_map;
lowp float pad0_;
};
#ifndef HAS_UNIFORM_u_color

View File

@@ -1,8 +1,6 @@
layout (location = 0) in vec2 a_pos;
layout (std140) uniform BackgroundDrawableUBO {
mat4 u_matrix;
vec2 u_world;
vec2 pad;
};
void main() {

View File

@@ -2,14 +2,15 @@ in vec3 v_data;
layout (std140) uniform CircleEvaluatedPropsUBO {
highp vec4 u_color;
highp vec4 u_stroke_color;
mediump float u_radius;
lowp float u_blur;
lowp float u_opacity;
highp vec4 u_stroke_color;
mediump float u_stroke_width;
lowp float u_stroke_opacity;
bool u_scale_with_map;
bool u_pitch_with_map;
lowp float pad0_;
};
#pragma mapbox: define highp vec4 color

View File

@@ -2,13 +2,15 @@ layout (location = 0) in vec2 a_pos;
out vec3 v_data;
layout (std140) uniform CircleDrawableUBO {
mat4 u_matrix;
vec2 u_extrude_scale;
highp mat4 u_matrix;
highp vec2 u_extrude_scale;
lowp vec2 pad2_;
};
layout (std140) uniform CirclePaintParamsUBO {
highp float u_camera_to_center_distance;
lowp float u_device_pixel_ratio;
lowp vec2 pad3_;
};
layout (std140) uniform CircleEvaluatedPropsUBO {
@@ -21,6 +23,7 @@ layout (std140) uniform CircleEvaluatedPropsUBO {
lowp float u_stroke_opacity;
bool u_scale_with_map;
bool u_pitch_with_map;
lowp float pad0_;
};
layout (std140) uniform CircleInterpolateUBO {
@@ -31,6 +34,7 @@ layout (std140) uniform CircleInterpolateUBO {
lowp float u_stroke_color_t;
lowp float u_stroke_width_t;
lowp float u_stroke_opacity_t;
lowp float pad1_;
};
#pragma mapbox: define highp vec4 color

View File

@@ -13,12 +13,14 @@ using namespace style;
struct alignas(16) CircleDrawableUBO {
std::array<float, 4 * 4> matrix;
std::array<float, 2> extrude_scale;
std::array<float, 2> padding;
};
static_assert(sizeof(CircleDrawableUBO) % 16 == 0);
struct alignas(16) CirclePaintParamsUBO {
float camera_to_center_distance;
float device_pixel_ratio;
std::array<float, 2> padding;
};
static_assert(sizeof(CirclePaintParamsUBO) % 16 == 0);
@@ -32,6 +34,7 @@ struct alignas(16) CircleEvaluatedPropsUBO {
float stroke_opacity;
int scale_with_map;
int pitch_with_map;
float padding;
};
static_assert(sizeof(CircleEvaluatedPropsUBO) % 16 == 0);
@@ -43,6 +46,7 @@ struct alignas(16) CircleInterpolateUBO {
float stroke_color_t;
float stroke_width_t;
float stroke_opacity_t;
float padding;
};
static_assert(sizeof(CircleInterpolateUBO) % 16 == 0);