{"id":3294,"date":"2025-02-07T09:25:30","date_gmt":"2025-02-07T16:25:30","guid":{"rendered":"https:\/\/www.lunarg.com\/?p=3294"},"modified":"2025-02-07T09:25:30","modified_gmt":"2025-02-07T16:25:30","slug":"portable-raytracing-with-gfxreconstruct","status":"publish","type":"post","link":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/","title":{"rendered":"Portable Raytracing with GFXReconstruct"},"content":{"rendered":"<div class=\"mceTemp\"><\/div>\n<p><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">Capturing and replaying <\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">ray-tracing commands<\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\"> in a <\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">device-independent<\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\"> manner has been challenging. However, <\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">Vulkan developers<\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\"> can now benefit from a solution we&#8217;ve implemented in <\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">GFXReconstruct<\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">. This advancement allows for the capture of ray tracing commands on one device and their accurate replay on another.<\/span><\/span><\/p>\n<figure id=\"attachment_3366\" aria-describedby=\"caption-attachment-3366\" style=\"width: 231px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-FINAL-PUBLISHED.pdf\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3366\" src=\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-doc-thumb-231x300.png\" alt=\"GFXR - Portable Raytracing doc thumb\" width=\"231\" height=\"300\" srcset=\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-doc-thumb-231x300.png 231w, https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-doc-thumb-789x1024.png 789w, https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-doc-thumb-768x996.png 768w, https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXR-Portable-Raytracing-doc-thumb.png 928w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\" \/><\/a><figcaption id=\"caption-attachment-3366\" class=\"wp-caption-text\">Download the &#8220;GFXReconstruct &#8211; Portable Raytracing&#8221; whitepaper here!<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">Check out <\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">Fabian&#8217;s white paper<\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\"> for details on how we achiev<\/span><\/span><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3 r-1kt6imw\"><span class=\"css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3\">ed this!<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Capturing and replaying ray-tracing commands in a device-independent manner has been challenging. However, Vulkan developers can now benefit from a solution we&#8217;ve implemented in GFXReconstruct. This advancement allows for the capture of ray tracing commands on one device and their accurate replay on another. &nbsp; Check out Fabian&#8217;s white paper for details on how we [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":3364,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[130],"tags":[29],"class_list":["post-3294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-vulkan-sdk"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Portable Raytracing with GFXReconstruct - LunarG<\/title>\n<meta name=\"description\" content=\"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Portable Raytracing with GFXReconstruct - LunarG\" \/>\n<meta property=\"og:description\" content=\"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\" \/>\n<meta property=\"og:site_name\" content=\"LunarG\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-07T16:25:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Randi Rost\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Randi Rost\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\"},\"author\":{\"name\":\"Randi Rost\",\"@id\":\"https:\/\/www.lunarg.com\/#\/schema\/person\/d4a06431509767fbe7599f7a0f777e7c\"},\"headline\":\"Portable Raytracing with GFXReconstruct\",\"datePublished\":\"2025-02-07T16:25:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\"},\"wordCount\":79,\"publisher\":{\"@id\":\"https:\/\/www.lunarg.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png\",\"keywords\":[\"Vulkan SDK\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\",\"url\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\",\"name\":\"Portable Raytracing with GFXReconstruct - LunarG\",\"isPartOf\":{\"@id\":\"https:\/\/www.lunarg.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png\",\"datePublished\":\"2025-02-07T16:25:30+00:00\",\"description\":\"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage\",\"url\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png\",\"contentUrl\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png\",\"width\":1600,\"height\":900,\"caption\":\"Portable raytracing support in GFXReconstruct\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.lunarg.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Portable Raytracing with GFXReconstruct\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.lunarg.com\/#website\",\"url\":\"https:\/\/www.lunarg.com\/\",\"name\":\"LunarG\",\"description\":\"3D Graphics Software Solutions\",\"publisher\":{\"@id\":\"https:\/\/www.lunarg.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.lunarg.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.lunarg.com\/#organization\",\"name\":\"LunarG\",\"url\":\"https:\/\/www.lunarg.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.lunarg.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"contentUrl\":\"https:\/\/www.lunarg.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"width\":767,\"height\":304,\"caption\":\"LunarG\"},\"image\":{\"@id\":\"https:\/\/www.lunarg.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.lunarg.com\/#\/schema\/person\/d4a06431509767fbe7599f7a0f777e7c\",\"name\":\"Randi Rost\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.lunarg.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8e2d17f25d1e453284a5bc16a7b1458e?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8e2d17f25d1e453284a5bc16a7b1458e?s=96&d=retro&r=pg\",\"caption\":\"Randi Rost\"},\"url\":\"https:\/\/www.lunarg.com\/author\/randi-rost\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Portable Raytracing with GFXReconstruct - LunarG","description":"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/","og_locale":"en_US","og_type":"article","og_title":"Portable Raytracing with GFXReconstruct - LunarG","og_description":"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.","og_url":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/","og_site_name":"LunarG","article_published_time":"2025-02-07T16:25:30+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png","type":"image\/png"}],"author":"Randi Rost","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Randi Rost","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#article","isPartOf":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/"},"author":{"name":"Randi Rost","@id":"https:\/\/www.lunarg.com\/#\/schema\/person\/d4a06431509767fbe7599f7a0f777e7c"},"headline":"Portable Raytracing with GFXReconstruct","datePublished":"2025-02-07T16:25:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/"},"wordCount":79,"publisher":{"@id":"https:\/\/www.lunarg.com\/#organization"},"image":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png","keywords":["Vulkan SDK"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/","url":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/","name":"Portable Raytracing with GFXReconstruct - LunarG","isPartOf":{"@id":"https:\/\/www.lunarg.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage"},"image":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png","datePublished":"2025-02-07T16:25:30+00:00","description":"A new capability from LunarG makes it possible to capture ray-tracing commands on one device and replay them accurately on another.","breadcrumb":{"@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#primaryimage","url":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png","contentUrl":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2025\/02\/GFXReconstruct-Ray-Tracing.png","width":1600,"height":900,"caption":"Portable raytracing support in GFXReconstruct"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lunarg.com\/portable-raytracing-with-gfxreconstruct\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lunarg.com\/"},{"@type":"ListItem","position":2,"name":"Portable Raytracing with GFXReconstruct"}]},{"@type":"WebSite","@id":"https:\/\/www.lunarg.com\/#website","url":"https:\/\/www.lunarg.com\/","name":"LunarG","description":"3D Graphics Software Solutions","publisher":{"@id":"https:\/\/www.lunarg.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lunarg.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.lunarg.com\/#organization","name":"LunarG","url":"https:\/\/www.lunarg.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lunarg.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2020\/05\/logo.png","contentUrl":"https:\/\/www.lunarg.com\/wp-content\/uploads\/2020\/05\/logo.png","width":767,"height":304,"caption":"LunarG"},"image":{"@id":"https:\/\/www.lunarg.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.lunarg.com\/#\/schema\/person\/d4a06431509767fbe7599f7a0f777e7c","name":"Randi Rost","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lunarg.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8e2d17f25d1e453284a5bc16a7b1458e?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8e2d17f25d1e453284a5bc16a7b1458e?s=96&d=retro&r=pg","caption":"Randi Rost"},"url":"https:\/\/www.lunarg.com\/author\/randi-rost\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/posts\/3294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/comments?post=3294"}],"version-history":[{"count":0,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/posts\/3294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/media\/3364"}],"wp:attachment":[{"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/media?parent=3294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/categories?post=3294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lunarg.com\/wp-json\/wp\/v2\/tags?post=3294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}