Project

General

Profile

« Previous | Next » 

Revision 073e5a7a

Added by Leszek Koltunski over 3 years ago

Another attempt at fixing tthings on early Qualcomm OpenGL ES 3.0 drivers.

The previous version does not work on Adreno 405 driver V@100, present for example in a Asus ZenPad 8.
Revert the packed 'ivec2' UBO in the vertex shader back to a 'std140' ivec4. This comes at a price if bumping into the bug on Qualcomm driver version 331 on Adreno 308 - i.e. Samsung Galaxy J4+ again.

On this platform, switch off Gigaminx and then set MAX_COMPONENTS to 98.

View differences:

src/main/java/org/distorted/library/mesh/MeshBase.java
51 51
   {
52 52
   private static final int ASSOC_UBO_BINDING  = 3;
53 53
   private static final int CENTER_UBO_BINDING = 4;
54
   public  static final int MAX_EFFECT_COMPONENTS= 242;
54

  
55
   public static int MAX_EFFECT_COMPONENTS= 100;
55 56

  
56 57
   // sizes of attributes of an individual vertex.
57 58
   private static final int POS_DATA_SIZE= 3; // vertex coordinates: x,y,z
......
573 574
     return MAX_EFFECT_COMPONENTS;
574 575
     }
575 576

  
577
///////////////////////////////////////////////////////////////////////////////////////////////////
578
/**
579
 * How many mesh components are we going to need? Call before compilation of the shaders.
580
 */
581
   public static void setMaxEffComponents(int max)
582
     {
583
     MAX_EFFECT_COMPONENTS = max;
584
     }
585

  
576 586
///////////////////////////////////////////////////////////////////////////////////////////////////
577 587

  
578 588
   public static void getUniforms(int programH, int variant)
src/main/java/org/distorted/library/uniformblock/UniformBlockAssociation.java
34 34
public class UniformBlockAssociation
35 35
  {
36 36
  private static final int DEFAULT_ASSOCIATION = 0xffffffff;
37
  private static final int DEFAULT_STRIDE = 2;
37
  private static final int DEFAULT_STRIDE = 4;
38 38
  private static final int LOC_AND = 0;
39 39
  private static final int LOC_EQU = 1;
40 40

  
src/main/res/raw/main_vertex_shader.glsl
65 65
                                      // second vec4: first float - cache, next 3: Center, the third -  the Region.
66 66
  };
67 67

  
68
layout (packed) uniform componentAssociation
68
layout (std140) uniform componentAssociation
69 69
  {
70
  ivec2 vComAssoc[MAX_COMPON];        // component 'AND' and 'EQU' Associations
70
  ivec4 vComAssoc[MAX_COMPON];        // component 'AND' and 'EQU' Associations
71 71
  };
72 72

  
73 73
//////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff