Remove flippable bit from g_emptyTex
This causes a KMS import failure on Intel. A 1x1 buffer never seems to be flippable there. Closes: https://github.com/Plagman/gamescope/issues/217
This commit is contained in:
parent
bedef21474
commit
15b4eb04ec
3 changed files with 15 additions and 10 deletions
|
@ -410,6 +410,7 @@ bool CVulkanTexture::BInit( uint32_t width, uint32_t height, VkFormat format, cr
|
|||
modifiers.push_back( modifier );
|
||||
}
|
||||
|
||||
fprintf(stderr, "format: 0x%x, size: %dx%d\n", drmFormat, width, height);
|
||||
assert( modifiers.size() > 0 );
|
||||
|
||||
modifierListInfo.sType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
|
||||
|
@ -1692,8 +1693,9 @@ bool vulkan_init(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
CVulkanTexture::createFlags texCreateFlags;
|
||||
uint32_t bits = 0;
|
||||
g_emptyTex = vulkan_create_texture_from_bits( 1, 1, VK_FORMAT_R8G8B8A8_UNORM, &bits );
|
||||
g_emptyTex = vulkan_create_texture_from_bits( 1, 1, VK_FORMAT_R8G8B8A8_UNORM, texCreateFlags, &bits );
|
||||
|
||||
if ( g_emptyTex == 0 )
|
||||
{
|
||||
|
@ -1830,15 +1832,12 @@ VulkanTexture_t vulkan_create_texture_from_dmabuf( struct wlr_dmabuf_attributes
|
|||
return ret;
|
||||
}
|
||||
|
||||
VulkanTexture_t vulkan_create_texture_from_bits( uint32_t width, uint32_t height, VkFormat format, void *bits )
|
||||
VulkanTexture_t vulkan_create_texture_from_bits( uint32_t width, uint32_t height, VkFormat format, CVulkanTexture::createFlags texCreateFlags, void *bits )
|
||||
{
|
||||
VulkanTexture_t ret = 0;
|
||||
|
||||
CVulkanTexture *pTex = new CVulkanTexture();
|
||||
|
||||
CVulkanTexture::createFlags texCreateFlags;
|
||||
texCreateFlags.bFlippable = BIsNested() == false;
|
||||
texCreateFlags.bLinear = true; // cursor buffer needs to be linear
|
||||
texCreateFlags.bTextureable = true;
|
||||
texCreateFlags.bTransferDst = true;
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ extern dev_t g_vulkanDrmDevId;
|
|||
bool vulkan_init(void);
|
||||
|
||||
VulkanTexture_t vulkan_create_texture_from_dmabuf( struct wlr_dmabuf_attributes *pDMA );
|
||||
VulkanTexture_t vulkan_create_texture_from_bits( uint32_t width, uint32_t height, VkFormat format, void *bits );
|
||||
VulkanTexture_t vulkan_create_texture_from_bits( uint32_t width, uint32_t height, VkFormat format, CVulkanTexture::createFlags texCreateFlags, void *bits );
|
||||
|
||||
uint32_t vulkan_texture_get_fbid( VulkanTexture_t vulkanTex );
|
||||
|
||||
|
|
|
@ -847,9 +847,15 @@ bool MouseCursor::getTexture()
|
|||
return false;
|
||||
}
|
||||
|
||||
CVulkanTexture::createFlags texCreateFlags;
|
||||
if ( BIsNested() == false )
|
||||
{
|
||||
texCreateFlags.bFlippable = true;
|
||||
texCreateFlags.bLinear = true; // cursor buffer needs to be linear
|
||||
// TODO: choose format & modifiers from cursor plane
|
||||
m_texture = vulkan_create_texture_from_bits(m_width, m_height, VK_FORMAT_R8G8B8A8_UNORM,
|
||||
cursorBuffer.data());
|
||||
}
|
||||
|
||||
m_texture = vulkan_create_texture_from_bits(m_width, m_height, VK_FORMAT_R8G8B8A8_UNORM, texCreateFlags, cursorBuffer.data());
|
||||
assert(m_texture);
|
||||
XFree(image);
|
||||
m_dirty = false;
|
||||
|
|
Loading…
Reference in a new issue