diff --git a/src/main/java/net/vulkanmod/render/chunk/buffer/DrawBuffers.java b/src/main/java/net/vulkanmod/render/chunk/buffer/DrawBuffers.java
index 16c4b64b6..6e71d4336 100644
--- a/src/main/java/net/vulkanmod/render/chunk/buffer/DrawBuffers.java
+++ b/src/main/java/net/vulkanmod/render/chunk/buffer/DrawBuffers.java
@@ -365,7 +365,10 @@ private int getMask(Vec3 camera, RenderSection section) {
     public void bindBuffers(VkCommandBuffer commandBuffer, Pipeline pipeline, TerrainRenderType terrainRenderType, double camX, double camY, double camZ) {
         try (MemoryStack stack = MemoryStack.stackPush()) {
             var vertexBuffer = getAreaBuffer(terrainRenderType);
-            nvkCmdBindVertexBuffers(commandBuffer, 0, 1, stack.npointer(vertexBuffer.getId()), stack.npointer(0));
+            // VkBuffer is either a 64-bit unsigned integer or a 64-bit pointer, and
+            // VkDeviceSize is always an uint64_t. Both are equivalent to a Java "long",
+            // so use "stack.nlong" here.
+            nvkCmdBindVertexBuffers(commandBuffer, 0, 1, stack.nlong(vertexBuffer.getId()), stack.nlong(0));
             updateChunkAreaOrigin(commandBuffer, pipeline, camX, camY, camZ, stack);
         }
 
diff --git a/src/main/java/net/vulkanmod/vulkan/framebuffer/SwapChain.java b/src/main/java/net/vulkanmod/vulkan/framebuffer/SwapChain.java
index 9b68ec2d7..ccb623fbe 100644
--- a/src/main/java/net/vulkanmod/vulkan/framebuffer/SwapChain.java
+++ b/src/main/java/net/vulkanmod/vulkan/framebuffer/SwapChain.java
@@ -121,7 +121,19 @@ private void createSwapChain() {
             }
 
             createInfo.preTransform(surfaceProperties.capabilities.currentTransform());
-            createInfo.compositeAlpha(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR);
+
+            int supportedCompositeAlpha = surfaceProperties.capabilities.supportedCompositeAlpha();
+            if((supportedCompositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) != 0) {
+                createInfo.compositeAlpha(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR);
+            }else if((supportedCompositeAlpha & VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR) != 0){
+                // PowerVR GE8320 Vulkan drivers don't support the alpha composite opaque bit.
+                // In that case, use the inherit mode if supported.
+                createInfo.compositeAlpha(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR);
+            } else {
+                // Not sure how to handle the other cases, to be honest...
+                throw new RuntimeException("Neither opaque, nor inherited alpha compositing modes are supported.");
+            }
+
             createInfo.presentMode(presentMode);
             createInfo.clipped(true);