Jump to content
  • Advertisement

glararan

Member
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

254 Neutral

About glararan

  • Rank
    Member

Personal Information

  • Interests
    Programming
  1. glararan

    Device lost

    Ok so problem was in QVulkanWindow implementation of Qt framework. Because I was unable to activate debug callback I wrote my own implementation which works.
  2. Hi, I have C++ Vulkan based project using Qt framework. QVulkanInstance and QVulkanWindow does lot of things for me like validation etc. but I can't figure out due Vulkan low level API how to troubleshoot Vulkan errors. I am trying to render terrain using tessellation shaders. I am learning from SaschaWillems tutorial for tessellation rendering. I think I am setting some value for rendering pass wrong in MapTile.cpp but unable to find which cause I dont know how to troubleshoot it. Whats the problem? App freezes on second end draw call Why? QVulkanWindow: Device lost Validation layers debug qt.vulkan: Vulkan init (vulkan-1.dll) qt.vulkan: Supported Vulkan instance layers: QVector(QVulkanLayer("VK_LAYER_NV_optimus" 1 1.1.84 "NVIDIA Optimus layer"), QVulkanLayer("VK_LAYER_RENDERDOC_Capture" 0 1.0.0 "Debugging capture layer for RenderDoc"), QVulkanLayer("VK_LAYER_VALVE_steam_overlay" 1 1.1.73 "Steam Overlay Layer"), QVulkanLayer("VK_LAYER_LUNARG_standard_validation" 1 1.0.82 "LunarG Standard Validation Layer")) qt.vulkan: Supported Vulkan instance extensions: QVector(QVulkanExtension("VK_KHR_device_group_creation" 1), QVulkanExtension("VK_KHR_external_fence_capabilities" 1), QVulkanExtension("VK_KHR_external_memory_capabilities" 1), QVulkanExtension("VK_KHR_external_semaphore_capabilities" 1), QVulkanExtension("VK_KHR_get_physical_device_properties2" 1), QVulkanExtension("VK_KHR_get_surface_capabilities2" 1), QVulkanExtension("VK_KHR_surface" 25), QVulkanExtension("VK_KHR_win32_surface" 6), QVulkanExtension("VK_EXT_debug_report" 9), QVulkanExtension("VK_EXT_swapchain_colorspace" 3), QVulkanExtension("VK_NV_external_memory_capabilities" 1), QVulkanExtension("VK_EXT_debug_utils" 1)) qt.vulkan: Enabling Vulkan instance layers: ("VK_LAYER_LUNARG_standard_validation") qt.vulkan: Enabling Vulkan instance extensions: ("VK_EXT_debug_report", "VK_KHR_surface", "VK_KHR_win32_surface") qt.vulkan: QVulkanWindow init qt.vulkan: 1 physical devices qt.vulkan: Physical device [0]: name 'GeForce GT 650M' version 416.64.0 qt.vulkan: Using physical device [0] qt.vulkan: queue family 0: flags=0xf count=16 supportsPresent=1 qt.vulkan: queue family 1: flags=0x4 count=1 supportsPresent=0 qt.vulkan: Using queue families: graphics = 0 present = 0 qt.vulkan: Supported device extensions: QVector(QVulkanExtension("VK_KHR_8bit_storage" 1), QVulkanExtension("VK_KHR_16bit_storage" 1), QVulkanExtension("VK_KHR_bind_memory2" 1), QVulkanExtension("VK_KHR_create_renderpass2" 1), QVulkanExtension("VK_KHR_dedicated_allocation" 3), QVulkanExtension("VK_KHR_descriptor_update_template" 1), QVulkanExtension("VK_KHR_device_group" 3), QVulkanExtension("VK_KHR_draw_indirect_count" 1), QVulkanExtension("VK_KHR_driver_properties" 1), QVulkanExtension("VK_KHR_external_fence" 1), QVulkanExtension("VK_KHR_external_fence_win32" 1), QVulkanExtension("VK_KHR_external_memory" 1), QVulkanExtension("VK_KHR_external_memory_win32" 1), QVulkanExtension("VK_KHR_external_semaphore" 1), QVulkanExtension("VK_KHR_external_semaphore_win32" 1), QVulkanExtension("VK_KHR_get_memory_requirements2" 1), QVulkanExtension("VK_KHR_image_format_list" 1), QVulkanExtension("VK_KHR_maintenance1" 2), QVulkanExtension("VK_KHR_maintenance2" 1), QVulkanExtension("VK_KHR_maintenance3" 1), QVulkanExtension("VK_KHR_multiview" 1), QVulkanExtension("VK_KHR_push_descriptor" 2), QVulkanExtension("VK_KHR_relaxed_block_layout" 1), QVulkanExtension("VK_KHR_sampler_mirror_clamp_to_edge" 1), QVulkanExtension("VK_KHR_sampler_ycbcr_conversion" 1), QVulkanExtension("VK_KHR_shader_draw_parameters" 1), QVulkanExtension("VK_KHR_storage_buffer_storage_class" 1), QVulkanExtension("VK_KHR_swapchain" 70), QVulkanExtension("VK_KHR_variable_pointers" 1), QVulkanExtension("VK_KHR_win32_keyed_mutex" 1), QVulkanExtension("VK_EXT_conditional_rendering" 1), QVulkanExtension("VK_EXT_depth_range_unrestricted" 1), QVulkanExtension("VK_EXT_descriptor_indexing" 2), QVulkanExtension("VK_EXT_discard_rectangles" 1), QVulkanExtension("VK_EXT_hdr_metadata" 1), QVulkanExtension("VK_EXT_inline_uniform_block" 1), QVulkanExtension("VK_EXT_shader_subgroup_ballot" 1), QVulkanExtension("VK_EXT_shader_subgroup_vote" 1), QVulkanExtension("VK_EXT_vertex_attribute_divisor" 3), QVulkanExtension("VK_NV_dedicated_allocation" 1), QVulkanExtension("VK_NV_device_diagnostic_checkpoints" 2), QVulkanExtension("VK_NV_external_memory" 1), QVulkanExtension("VK_NV_external_memory_win32" 1), QVulkanExtension("VK_NV_shader_subgroup_partitioned" 1), QVulkanExtension("VK_NV_win32_keyed_mutex" 1), QVulkanExtension("VK_NVX_device_generated_commands" 3), QVulkanExtension("VK_NVX_multiview_per_view_attributes" 1)) qt.vulkan: Enabling device extensions: QVector(VK_KHR_swapchain) qt.vulkan: memtype 0: flags=0x0 qt.vulkan: memtype 1: flags=0x0 qt.vulkan: memtype 2: flags=0x0 qt.vulkan: memtype 3: flags=0x0 qt.vulkan: memtype 4: flags=0x0 qt.vulkan: memtype 5: flags=0x0 qt.vulkan: memtype 6: flags=0x0 qt.vulkan: memtype 7: flags=0x1 qt.vulkan: memtype 8: flags=0x1 qt.vulkan: memtype 9: flags=0x6 qt.vulkan: memtype 10: flags=0xe qt.vulkan: Picked memtype 10 for host visible memory qt.vulkan: Picked memtype 7 for device local memory qt.vulkan: Color format: 44 Depth-stencil format: 129 qt.vulkan: Creating new swap chain of 2 buffers, size 600x370 qt.vulkan: Actual swap chain buffer count: 2 (supportsReadback=1) qt.vulkan: Allocating 1027072 bytes for transient image (memtype 8) qt.vulkan: Creating new swap chain of 2 buffers, size 600x368 qt.vulkan: Releasing swapchain qt.vulkan: Actual swap chain buffer count: 2 (supportsReadback=1) qt.vulkan: Allocating 1027072 bytes for transient image (memtype 8) QVulkanWindow: Device lost qt.vulkan: Releasing all resources due to device lost qt.vulkan: Releasing swapchain I am not so sure if this debug helps somehow :(( I dont want you to debug it for me. I just want to learn how I should debug it and find where problem is located. Could you give me guide please? Source code Source code rendering just few vertices (working) Difference between links are: Moved from Qt math libraries to glm Moved from QImage to gli for Texture class Added tessellation shaders Disabled window sampling Rendering terrain using heightmap and texturearray (Added normals and UV) Thanks
  3. This sound's great. I will take this direction
  4. Yea that's what I meant. I would like not use procedural terrain texture based on height. Or did u meant something else? Of course it could be used as toggle option in app, but I would like manually painting.
  5. What technique I should use for more than 5 texture rendering?
  6. Thanks for link about Morgan McGuire. I read that article already. If I undestood correctly it's one large map. For his example he didn't care about frustrum culling. Also thanks for pointing to vterrain.org. I didn't read those old techniques, but I guess I should go with Morgan McGuire's technique to be modern.
  7. Hello, I am university student. This year I am going to write bachelor thesis about Vulkan app using terrain to render real places based on e.g. google maps data. I played World of Warcraft for 10 years and I did some research about their terrain rendering. They render map as grid of tiles. Each tile had 4 available textures to paint (now 8 by expansion WoD) However I found issue about this implementation, that's gaps between tiles. Is there any technique which solves this problem? I read on stackoverflow that guys find only solution in using smooth tool and fixing it manually. Main question: is this terrain rendering technique obsolete? Is there any new technique that replaces this method to render large map as small tiles? Should I try to implement rendering terrain as grid of tiles or should I use some modern technique (can you tell me which is modern for you?). If I should implement terrain as one large map to prevent gaps between tiles how textures are applied for such large map? Thanks for any advice.
  8. glararan

    Tessellation tiles gaps

    That's not actually my problem like in video.. I don't have these problems with terrain
  9. glararan

    Tessellation tiles gaps

    So I should change TES shader. If I understand correct, I have to change following code: // Calculate the normal // This could be moved to a one-time pre-process step to create a normal map. // This would be a good candidate for a compute shader. // For deformable terrain, would need re-generating when terrain is modified const ivec3 offset = ivec3(-1, 0, 1); // Texel offsets float delta = 2.0 * horizontalScale / textureSize(heightMap, 0).x; // Horizontal displacement in world coords float left = textureOffset(heightMap, Out.texCoords, offset.xy).r; float right = textureOffset(heightMap, Out.texCoords, offset.zy).r; float top = textureOffset(heightMap, Out.texCoords, offset.yz).r; float bottom = textureOffset(heightMap, Out.texCoords, offset.yx).r; vec3 x = normalize(vec3(delta, right - left, 0.0)); vec3 z = normalize(vec3(0.0, top - bottom, delta)); vec3 n = cross(z, x);
  10. Hi there,   I'm looking for solution few months but still nothing. Last week I found new articles about this problematic. 2 articles saying there is problem with tessellation outer level. I set that settings for 0-3 to 7.0 but nothings changed.   What I tried for: 1) Set same height at neighbours... result: terrible! Look: Red thing mean border between tile.   2) Draw another thing "neighbour-fixer?" Result? Some camera angles destroy effect "it's part of original tile". Check top right corner of green thing.. Another thing... its using a lot of vertices.. I mean it's bit inefficient but better than nothing.   3) Shader solution? I mean my shaders are written bad so there is bug but I don't know how to solve it.   So my real question is... Is third mark possible to fix this whole problem? Can be shaders written incorrect and can be written correct to fix this thing?   Original screen problem:   All images were posted with tess level outer I mentioned.   Width, height of map: 1024x1024 Tiles: 16 (256x256)   Articles: http://gamedev.stackexchange.com/questions/70096/what-is-the-role-of-tessellation-in-terrain https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/sdk/11/TerrainTessellation_WhitePaper.pdf http://stackoverflow.com/questions/23530807/glsl-tessellated-environment-gaps-between-patches http://www.diva-portal.org/smash/get/diva2:566135/FULLTEXT01.pdf     Or do you have any other solution?     Vertex: http://pastebin.com/t2CrJ0f7 Geom: http://pastebin.com/C7JPGpeD TCS: http://pastebin.com/rm5DgpPu TES: http://pastebin.com/DsruCktp   Thanks for reply and help!
  11. Wou! Dostal jsem #HeroesOfTheStorm pozvánku! Jde se pa?it dneska... práce jde stranou :))
  12. RT @joebelfiore: And... if you're on the Developer Preview, go CHECK FOR UPDATES! WP8.1 Update is now live around the world!
  13. Porting application to Linux under than 30 minutes with external libraries.. result: http://t.co/UxvloJc0yr #OpenGL4 #Qt5 #Linux #Windows
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!