Fix PUBG on emulator

Vertex attributes with non-zero divisors should be treated as instanced
attributes.

BUG: 120159550
BUG: 120548998

Test: manual
Test: CtsDeqpTestCases

Change-Id: I33c2fa85fec6fead123927c5ea11c3338173cdcf
(cherry picked from commit 804b0f9b3b3901a2f6d2090698a39d03d6251432)
diff --git a/shared/OpenglCodecCommon/GLClientState.cpp b/shared/OpenglCodecCommon/GLClientState.cpp
index c4bf4da..45d0a3b 100644
--- a/shared/OpenglCodecCommon/GLClientState.cpp
+++ b/shared/OpenglCodecCommon/GLClientState.cpp
@@ -321,7 +321,6 @@
             bindings[i].effectiveStride = 16;
             bindings[i].size = 0;
             bindings[i].buffer = 0;
-            bindings[i].divisor = 0;
         }
     }
 }
diff --git a/system/GLESv2_enc/GL2Encoder.cpp b/system/GLESv2_enc/GL2Encoder.cpp
index daa891d..2be0699 100755
--- a/system/GLESv2_enc/GL2Encoder.cpp
+++ b/system/GLESv2_enc/GL2Encoder.cpp
@@ -1209,7 +1209,7 @@
 
             if (bufferObject == 0) {
                 unsigned int datalen = state.elementSize * count;
-                if (divisor && primcount) {
+                if (divisor) {
                     ALOGV("%s: divisor for att %d: %d, w/ stride %d (effective stride %d) size %d type 0x%x) datalen %u",
                             __FUNCTION__, i, divisor, state.stride, effectiveStride, state.elementSize, state.type, datalen);
                     int actual_count = std::max(1, (int)((primcount + divisor - 1) / divisor));
@@ -1239,7 +1239,7 @@
                 // But the last element doesn't have to fill up the whole stride.
                 // So it becomes the current form.
                 unsigned int bufLen = effectiveStride * (count ? (count - 1) : 0) + state.elementSize;
-                if (divisor && primcount) {
+                if (divisor) {
                     int actual_count = std::max(1, (int)((primcount + divisor - 1) / divisor));
                     bufLen = effectiveStride * (actual_count ? (actual_count - 1) : 0) + state.elementSize;
                 }