diff --git a/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp b/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
index 16067aebedfda8793a0096803ba5344275bcbbcd..28e92aa1b9795be10d01772471cf7e6cd386f832 100644
--- a/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
+++ b/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
@@ -56,6 +56,18 @@ namespace vkcv::shader {
 				return EShLangTaskNV;
 			case ShaderStage::MESH:
 				return EShLangMeshNV;
+			case ShaderStage::RAY_GEN:
+			    return EShLangRayGen;
+			case ShaderStage::RAY_CLOSEST_HIT:
+			    return EShLangClosestHit;
+			case ShaderStage::RAY_MISS:
+			    return EShLangMiss;
+			case ShaderStage::RAY_INTERSECTION:
+				return EShLangIntersect;
+			case ShaderStage::RAY_ANY_HIT:
+				return EShLangAnyHit;
+			case ShaderStage::RAY_CALLABLE:
+				return EShLangCallable;
 			default:
 				return EShLangCount;
 		}
@@ -214,6 +226,16 @@ namespace vkcv::shader {
 		}
 		
 		glslang::TShader shader (language);
+
+		//configure environment for rt shaders
+		if((shaderStage == ShaderStage::RAY_GEN) || (shaderStage == ShaderStage::RAY_ANY_HIT)
+		|| (shaderStage == ShaderStage::RAY_CLOSEST_HIT) || (shaderStage == ShaderStage::RAY_MISS)
+		|| (shaderStage == ShaderStage::RAY_INTERSECTION) || (shaderStage == ShaderStage::RAY_CALLABLE)){
+
+		    shader.setEnvClient(glslang::EShClientVulkan,glslang::EShTargetVulkan_1_2);
+		    shader.setEnvTarget(glslang::EShTargetSpv,glslang::EShTargetSpv_1_4);
+		}
+
 		glslang::TProgram program;
 		
 		std::string source (shaderSource);
diff --git a/projects/rtx/resources/shaders/raytrace.rchit b/projects/rtx/resources/shaders/raytrace.rchit
index 7eda8bd4533b955286afd51694527ac00f7368c1..836edc70d615c23d7783d0641aa1fb6d09bd743c 100644
--- a/projects/rtx/resources/shaders/raytrace.rchit
+++ b/projects/rtx/resources/shaders/raytrace.rchit
@@ -1,6 +1,7 @@
 #version 460
 #extension GL_EXT_ray_tracing : require
 
+/*
 layout(binding = 3, set 0) buffer vertices
 {
     vec3 vertices[];
@@ -10,6 +11,7 @@ layout(binding = 4, set 0) buffer indices
 {
     uint indices[];
 };
+*/
 
 void main() {
 
diff --git a/projects/rtx/resources/shaders/raytrace.rgen b/projects/rtx/resources/shaders/raytrace.rgen
index 313ecdb2742dd71e4831aab0cc5228088fd1f455..58b0f0ab2173e41d0a7699cf6d6e05473cbdf96c 100644
--- a/projects/rtx/resources/shaders/raytrace.rgen
+++ b/projects/rtx/resources/shaders/raytrace.rgen
@@ -1,6 +1,7 @@
 #version 460
 #extension GL_EXT_ray_tracing : require
 
+/*
 // A location for a ray payload (we can have multiple of these)
 layout(location = 0) rayPayloadEXT RayPayload pay;
 
@@ -15,7 +16,7 @@ layout( push_constant ) uniform constants {     // TODO: add push_constants in m
 
     uint frameCount;        // what is this? the actual frame?
 };
-
+*/
 
 void main() {
     // TODO
diff --git a/projects/rtx/src/main.cpp b/projects/rtx/src/main.cpp
index 340669ae6a16413c2befd3e40a5d45610ed21833..b518d26fc87786582accbb6ae65f0298a99070bc 100644
--- a/projects/rtx/src/main.cpp
+++ b/projects/rtx/src/main.cpp
@@ -123,7 +123,7 @@ int main(int argc, const char** argv) {
 
 	const auto& material0 = scene.getMaterial(0);
 
-	/*
+
 	vkcv::ShaderProgram rayGenShaderProgram;
 	compiler.compile(vkcv::ShaderStage::RAY_GEN, std::filesystem::path("resources/shaders/raytrace.rgen"),
 		[&rayGenShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
@@ -141,7 +141,7 @@ int main(int argc, const char** argv) {
 		[&rayMissShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
 			rayMissShaderProgram.addShader(shaderStage, path);
 		});
-	*/
+
 
 	//TODO
 //	vkcv::DescriptorSetLayoutHandle rayGenShaderDescriptorSetLayout = core.createDescriptorSetLayout(rayGenShaderProgram.getReflectedDescriptors().at(0));