diff --git a/driver/common.c b/driver/common.c index f696196..fcac03f 100644 --- a/driver/common.c +++ b/driver/common.c @@ -618,7 +618,7 @@ void encodeTextureUniform(uint32_t* params, //array of 4 uint32_t | (uint32_t)(minFilter & 0x7) << 4 | (uint32_t)(magFilter & 0x1) << 7 | (uint32_t)(width & 0x7ff) << 8 - | (uint32_t)(height & 0x7ff) < 20 + | (uint32_t)(height & 0x7ff) << 20 | (uint32_t)((textureDataType & 0x10) >> 4) << 31; params[2] = 0 diff --git a/driver/draw.c b/driver/draw.c index 63a2c61..26b5b19 100644 --- a/driver/draw.c +++ b/driver/draw.c @@ -130,7 +130,7 @@ void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t ins clInsertShaderRecord(&commandBuffer->shaderRecCl, &relocCl, &commandBuffer->handlesCl, - 1, //TODO single threaded? + 0, //TODO single threaded? 0, //point size included in shaded vertex data? 1, //enable clipping? 0, //fragment number of unused uniforms? @@ -325,7 +325,11 @@ void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t ins //emit reloc for texture BO clFit(commandBuffer, &commandBuffer->handlesCl, 4); //TODO anything to do with the index returned? - clGetHandleIndex(&commandBuffer->handlesCl, di->imageView->image->boundMem->bo); + uint32_t idx = clGetHandleIndex(&commandBuffer->handlesCl, di->imageView->image->boundMem->bo); + + //emit tex bo reloc index + clFit(commandBuffer, &commandBuffer->uniformsCl, 4); + clInsertData(&commandBuffer->uniformsCl, 4, &idx); //emit tex parameters clFit(commandBuffer, &commandBuffer->uniformsCl, size); diff --git a/test/triangle/triangle.cpp b/test/triangle/triangle.cpp index 5ee6b3e..9af10f5 100644 --- a/test/triangle/triangle.cpp +++ b/test/triangle/triangle.cpp @@ -1339,7 +1339,8 @@ void CreateTexture() VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier); - vkEndCommandBuffer(copyCommandBuffer); + //TODO + //vkEndCommandBuffer(copyCommandBuffer); VkFenceCreateInfo fenceInfo = {}; fenceInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; @@ -1353,9 +1354,10 @@ void CreateTexture() submitInfo.commandBufferCount = 1; submitInfo.pCommandBuffers = ©CommandBuffer; - vkQueueSubmit(graphicsQueue, 1, &submitInfo, fence); + //TODO + //vkQueueSubmit(graphicsQueue, 1, &submitInfo, fence); - vkWaitForFences(device, 1, &fence, VK_TRUE, -1); + //vkWaitForFences(device, 1, &fence, VK_TRUE, -1); vkDestroyFence(device, fence, 0); vkFreeCommandBuffers(device, commandPool, 1, ©CommandBuffer);