### Godot version

4.1.stable

### System information

Android13

### Issue description

I'm trying to import the obj model file on Android but there seems to be some compatibility issues? You can do two tests on both the computer and the mobile side to make sure what I'm saying is true.
![Screenshot_2023-08-07-19-44-12-648_org godotengine editor v4](https://github.com/godotengine/godot/assets/64678717/69e05974-96df-460b-b062-ae99f62b8af2)


### Steps to reproduce

Create an obj file and import it into the Godot engine on Android.

### Minimal reproduction project
[test.zip](https://github.com/godotengine/godot/files/12279298/test.zip)


offset += sizeof(RenderingDeviceVulkanShaderBinarySpecializationConstant) * specialization_constants.size();
		}
		for (int i = 0; i < compressed_stages.size(); i++) {
			encode_uint32(p_spirv[i].shader_stage, binptr + offset);
			offset += sizeof(uint32_t);
			encode_uint32(smolv_size[i], binptr + offset);
			offset += sizeof(uint32_t);
			encode_uint32(zstd_size[i], binptr + offset);
			offset += sizeof(uint32_t);
			memcpy(binptr + offset, compressed_stages[i].ptr(), compressed_stages[i].size());
			uint32_t s = compressed_stages[i].size();
			if (s % 4 != 0) {
				s += 4 - (s % 4);
			}
			offset += s;
		}
		ERR_FAIL_COND_V(offset != (uint32_t)ret.size(), Vector<uint8_t>());
	}
	return ret;
}
RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_shader_binary, RID p_placeholder) {
	const uint8_t *binptr = p_shader_binary.ptr();
	uint32_t binsize = p_shader_binary.size();
	uint32_t read_offset = 0;
	
	ERR_FAIL_COND_V(binsize < sizeof(uint32_t) * 3 + sizeof(RenderingDeviceVulkanShaderBinaryData), RID());
	ERR_FAIL_COND_V(binptr[0] != 'G' || binptr[1] != 'S' || binptr[2] != 'B' || binptr[3] != 'D', RID());
	uint32_t bin_version = decode_uint32(binptr + 4);
	ERR_FAIL_COND_V(bin_version != SHADER_BINARY_VERSION, RID());
	uint32_t bin_data_size = decode_uint32(binptr + 8);