Expose another couple of vulkan device features.

This commit is contained in:
Henrik Rydgard 2016-01-19 18:41:45 +01:00
parent d5f685ce05
commit 5b70957b1f
4 changed files with 13 additions and 5 deletions

View File

@ -2116,6 +2116,10 @@ bool GPU_Vulkan::PerformMemorySet(u32 dest, u8 v, int size) {
return false; return false;
} }
void GPU_Vulkan::NotifyVideoUpload(u32 addr, int size, int width, int format) {
}
bool GPU_Vulkan::PerformMemoryDownload(u32 dest, int size) { bool GPU_Vulkan::PerformMemoryDownload(u32 dest, int size) {
// Cheat a bit to force a download of the framebuffer. // Cheat a bit to force a download of the framebuffer.
// VRAM + 0x00400000 is simply a VRAM mirror. // VRAM + 0x00400000 is simply a VRAM mirror.
@ -2214,7 +2218,3 @@ std::string GPU_Vulkan::DebugGetShaderString(std::string id, DebugShaderType typ
return shaderManager_->DebugGetShaderString(id, type, stringType); return shaderManager_->DebugGetShaderString(id, type, stringType);
} }
} }
void GPU_Vulkan::NotifyVideoUpload(u32 addr, int size, int width, int format) {
}

View File

@ -51,10 +51,10 @@ public:
void ReapplyGfxStateInternal() override; void ReapplyGfxStateInternal() override;
void SetDisplayFramebuffer(u32 framebuf, u32 stride, GEBufferFormat format) override; void SetDisplayFramebuffer(u32 framebuf, u32 stride, GEBufferFormat format) override;
void CopyDisplayToOutput() override; void CopyDisplayToOutput() override;
void NotifyVideoUpload(u32 addr, int size, int width, int format) override;
void BeginFrame() override; void BeginFrame() override;
void UpdateStats() override; void UpdateStats() override;
void InvalidateCache(u32 addr, int size, GPUInvalidationType type) override; void InvalidateCache(u32 addr, int size, GPUInvalidationType type) override;
void NotifyVideoUpload(u32 addr, int size, int width, int format) override;
bool PerformMemoryCopy(u32 dest, u32 src, int size) override; bool PerformMemoryCopy(u32 dest, u32 src, int size) override;
bool PerformMemorySet(u32 dest, u8 v, int size) override; bool PerformMemorySet(u32 dest, u8 v, int size) override;
bool PerformMemoryDownload(u32 dest, int size) override; bool PerformMemoryDownload(u32 dest, int size) override;

View File

@ -622,6 +622,12 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
if (featuresAvailable_.logicOp) { if (featuresAvailable_.logicOp) {
featuresEnabled_.logicOp = true; featuresEnabled_.logicOp = true;
} }
if (featuresAvailable_.depthClamp) {
featuresEnabled_.depthClamp = true;
}
if (featuresAvailable_.depthBounds) {
featuresEnabled_.depthBounds = true;
}
VkDeviceCreateInfo device_info = {}; VkDeviceCreateInfo device_info = {};
device_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; device_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;

View File

@ -1196,6 +1196,8 @@ std::vector<std::string> Thin3DVKContext::GetFeatureList() {
AddFeature(features, "textureCompressionASTC_LDR", available.textureCompressionASTC_LDR, enabled.textureCompressionASTC_LDR); AddFeature(features, "textureCompressionASTC_LDR", available.textureCompressionASTC_LDR, enabled.textureCompressionASTC_LDR);
AddFeature(features, "shaderClipDistance", available.shaderClipDistance, enabled.shaderClipDistance); AddFeature(features, "shaderClipDistance", available.shaderClipDistance, enabled.shaderClipDistance);
AddFeature(features, "shaderCullDistance", available.shaderCullDistance, enabled.shaderCullDistance); AddFeature(features, "shaderCullDistance", available.shaderCullDistance, enabled.shaderCullDistance);
AddFeature(features, "occlusionQueryPrecise", available.occlusionQueryPrecise, enabled.occlusionQueryPrecise);
AddFeature(features, "multiDrawIndirect", available.multiDrawIndirect, enabled.multiDrawIndirect);
// Also list texture formats and their properties. // Also list texture formats and their properties.
for (int i = VK_FORMAT_BEGIN_RANGE; i <= VK_FORMAT_END_RANGE; i++) { for (int i = VK_FORMAT_BEGIN_RANGE; i <= VK_FORMAT_END_RANGE; i++) {