switch (device->gpu_id) {
case 618:
- device->tile_align_w = 64;
- device->tile_align_h = 16;
device->magic.RB_UNKNOWN_8E04_blit = 0x00100000;
- device->magic.RB_CCU_CNTL_gmem = 0x3e400004;
+ device->ccu_offset_gmem = 0x7c000; /* 0x7e000 in some cases? */
+ device->ccu_offset_bypass = 0x10000;
device->magic.PC_UNKNOWN_9805 = 0x0;
device->magic.SP_UNKNOWN_A0F8 = 0x0;
break;
case 630:
case 640:
- device->tile_align_w = 64;
- device->tile_align_h = 16;
device->magic.RB_UNKNOWN_8E04_blit = 0x01000000;
- device->magic.RB_CCU_CNTL_gmem = 0x7c400004;
+ device->ccu_offset_gmem = 0xf8000;
+ device->ccu_offset_bypass = 0x20000;
device->magic.PC_UNKNOWN_9805 = 0x1;
device->magic.SP_UNKNOWN_A0F8 = 0x1;
break;
close(device->master_fd);
}
-static void *
+static VKAPI_ATTR void *
default_alloc_func(void *pUserData,
size_t size,
size_t align,
return malloc(size);
}
-static void *
+static VKAPI_ATTR void *
default_realloc_func(void *pUserData,
void *pOriginal,
size_t size,
return realloc(pOriginal, size);
}
-static void
+static VKAPI_ATTR void
default_free_func(void *pUserData, void *pMemory)
{
free(pMemory);
.fullDrawIndexUint32 = true,
.imageCubeArray = false,
.independentBlend = true,
- .geometryShader = false,
+ .geometryShader = true,
.tessellationShader = false,
.sampleRateShading = true,
.dualSrcBlend = true,
.logicOp = true,
.multiDrawIndirect = false,
.drawIndirectFirstInstance = false,
- .depthClamp = false,
+ .depthClamp = true,
.depthBiasClamp = false,
.fillModeNonSolid = false,
.depthBounds = false,
VkPhysicalDeviceProperties *pProperties)
{
TU_FROM_HANDLE(tu_physical_device, pdevice, physicalDevice);
- VkSampleCountFlags sample_counts = VK_SAMPLE_COUNT_1_BIT |
- VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT;
+ VkSampleCountFlags sample_counts =
+ VK_SAMPLE_COUNT_1_BIT | VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT;
/* make sure that the entire descriptor set is addressable with a signed
* 32-bit int. So the sum of all limits scaled by descriptor size has to
.maxDescriptorSetInputAttachments = max_descriptor_set_size,
.maxVertexInputAttributes = 32,
.maxVertexInputBindings = 32,
- .maxVertexInputAttributeOffset = 2047,
+ .maxVertexInputAttributeOffset = 4095,
.maxVertexInputBindingStride = 2048,
.maxVertexOutputComponents = 128,
.maxTessellationGenerationLevel = 64,
.maxTessellationControlTotalOutputComponents = 4096,
.maxTessellationEvaluationInputComponents = 128,
.maxTessellationEvaluationOutputComponents = 128,
- .maxGeometryShaderInvocations = 127,
+ .maxGeometryShaderInvocations = 32,
.maxGeometryInputComponents = 64,
.maxGeometryOutputComponents = 128,
.maxGeometryOutputVertices = 256,
.maxComputeWorkGroupCount = { 65535, 65535, 65535 },
.maxComputeWorkGroupInvocations = 2048,
.maxComputeWorkGroupSize = { 2048, 2048, 2048 },
- .subPixelPrecisionBits = 4 /* FIXME */,
+ .subPixelPrecisionBits = 8,
.subTexelPrecisionBits = 4 /* FIXME */,
.mipmapPrecisionBits = 4 /* FIXME */,
.maxDrawIndexedIndexValue = UINT32_MAX,
.sampledImageStencilSampleCounts = sample_counts,
.storageImageSampleCounts = VK_SAMPLE_COUNT_1_BIT,
.maxSampleMaskWords = 1,
- .timestampComputeAndGraphics = false, /* FINISHME */
- .timestampPeriod = 1,
+ .timestampComputeAndGraphics = true,
+ .timestampPeriod = 1000000000.0 / 19200000.0, /* CP_ALWAYS_ON_COUNTER is fixed 19.2MHz */
.maxClipDistances = 8,
.maxCullDistances = 8,
.maxCombinedClipAndCullDistances = 8,
.queueFlags =
VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT,
.queueCount = 1,
- .timestampValidBits = 0, /* FINISHME */
+ .timestampValidBits = 48,
.minImageTransferGranularity = { 1, 1, 1 },
};
return VK_SUCCESS;
}
+VkResult
+tu_ImportSemaphoreFdKHR(VkDevice _device,
+ const VkImportSemaphoreFdInfoKHR *pImportSemaphoreFdInfo)
+{
+ tu_stub();
+
+ return VK_SUCCESS;
+}
+
+VkResult
+tu_GetSemaphoreFdKHR(VkDevice _device,
+ const VkSemaphoreGetFdInfoKHR *pGetFdInfo,
+ int *pFd)
+{
+ tu_stub();
+
+ return VK_SUCCESS;
+}
+
+VkResult
+tu_ImportFenceFdKHR(VkDevice _device,
+ const VkImportFenceFdInfoKHR *pImportFenceFdInfo)
+{
+ tu_stub();
+
+ return VK_SUCCESS;
+}
+
+VkResult
+tu_GetFenceFdKHR(VkDevice _device,
+ const VkFenceGetFdInfoKHR *pGetFdInfo,
+ int *pFd)
+{
+ tu_stub();
+
+ return VK_SUCCESS;
+}
+
VkResult
tu_EnumerateInstanceExtensionProperties(const char *pLayerName,
uint32_t *pPropertyCount,
pMemoryRequirements->memoryTypeBits = 1;
pMemoryRequirements->size = image->layout.size;
- pMemoryRequirements->alignment = image->alignment;
+ pMemoryRequirements->alignment = image->layout.base_align;
}
void