diff --git a/src/backend/vulkan/CommandBufferVk.cpp b/src/backend/vulkan/CommandBufferVk.cpp
index b85012f..f465827 100644
--- a/src/backend/vulkan/CommandBufferVk.cpp
+++ b/src/backend/vulkan/CommandBufferVk.cpp
@@ -19,7 +19,7 @@
 #include "backend/vulkan/BufferVk.h"
 #include "backend/vulkan/ComputePipelineVk.h"
 #include "backend/vulkan/PipelineLayoutVk.h"
-#include "backend/vulkan/RenderPassInfoVk.h"
+#include "backend/vulkan/RenderPassDescriptorVk.h"
 #include "backend/vulkan/RenderPipelineVk.h"
 #include "backend/vulkan/TextureVk.h"
 #include "backend/vulkan/VulkanBackend.h"
@@ -183,7 +183,7 @@
 
                 case Command::BeginRenderPass: {
                     BeginRenderPassCmd* cmd = mCommands.NextCommand<BeginRenderPassCmd>();
-                    RenderPassInfo* info = ToBackend(cmd->info.Get());
+                    RenderPassDescriptor* info = ToBackend(cmd->info.Get());
 
                     // NXT has an implicit transition to color attachment on render passes.
                     // Transition the attachments now before we start the render pass.
diff --git a/src/backend/vulkan/GeneratedCodeIncludes.h b/src/backend/vulkan/GeneratedCodeIncludes.h
index 18e96e7..7af9d70 100644
--- a/src/backend/vulkan/GeneratedCodeIncludes.h
+++ b/src/backend/vulkan/GeneratedCodeIncludes.h
@@ -21,7 +21,7 @@
 #include "backend/vulkan/DepthStencilStateVk.h"
 #include "backend/vulkan/InputStateVk.h"
 #include "backend/vulkan/PipelineLayoutVk.h"
-#include "backend/vulkan/RenderPassInfoVk.h"
+#include "backend/vulkan/RenderPassDescriptorVk.h"
 #include "backend/vulkan/RenderPipelineVk.h"
 #include "backend/vulkan/SamplerVk.h"
 #include "backend/vulkan/ShaderModuleVk.h"
diff --git a/src/backend/vulkan/RenderPassInfoVk.cpp b/src/backend/vulkan/RenderPassDescriptorVk.cpp
similarity index 93%
rename from src/backend/vulkan/RenderPassInfoVk.cpp
rename to src/backend/vulkan/RenderPassDescriptorVk.cpp
index 4f046f5..02d4337 100644
--- a/src/backend/vulkan/RenderPassInfoVk.cpp
+++ b/src/backend/vulkan/RenderPassDescriptorVk.cpp
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "backend/vulkan/RenderPassInfoVk.h"
+#include "backend/vulkan/RenderPassDescriptorVk.h"
 
 #include "backend/vulkan/FencedDeleter.h"
 #include "backend/vulkan/RenderPassCache.h"
@@ -22,11 +22,11 @@
 
 namespace backend { namespace vulkan {
 
-    RenderPassInfo::RenderPassInfo(RenderPassInfoBuilder* builder)
-        : RenderPassInfoBase(builder), mDevice(ToBackend(builder->GetDevice())) {
+    RenderPassDescriptor::RenderPassDescriptor(RenderPassDescriptorBuilder* builder)
+        : RenderPassDescriptorBase(builder), mDevice(ToBackend(builder->GetDevice())) {
     }
 
-    void RenderPassInfo::RecordBeginRenderPass(VkCommandBuffer commands) {
+    void RenderPassDescriptor::RecordBeginRenderPass(VkCommandBuffer commands) {
         // Query a VkRenderPass from the cache
         VkRenderPass renderPass = VK_NULL_HANDLE;
         {
diff --git a/src/backend/vulkan/RenderPassInfoVk.h b/src/backend/vulkan/RenderPassDescriptorVk.h
similarity index 74%
rename from src/backend/vulkan/RenderPassInfoVk.h
rename to src/backend/vulkan/RenderPassDescriptorVk.h
index dcbba41..4955b16 100644
--- a/src/backend/vulkan/RenderPassInfoVk.h
+++ b/src/backend/vulkan/RenderPassDescriptorVk.h
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef BACKEND_VULKAN_RENDERPASSINFOVK_H_
-#define BACKEND_VULKAN_RENDERPASSINFOVK_H_
+#ifndef BACKEND_VULKAN_RENDERPASSDESCRIPTORVK_H_
+#define BACKEND_VULKAN_RENDERPASSDESCRIPTORVK_H_
 
-#include "backend/RenderPassInfo.h"
+#include "backend/RenderPassDescriptor.h"
 
 #include "common/vulkan_platform.h"
 
@@ -23,9 +23,9 @@
 
     class Device;
 
-    class RenderPassInfo : public RenderPassInfoBase {
+    class RenderPassDescriptor : public RenderPassDescriptorBase {
       public:
-        RenderPassInfo(RenderPassInfoBuilder* builder);
+        RenderPassDescriptor(RenderPassDescriptorBuilder* builder);
 
         // Compute all the arguments for, and record the vkCmdBeginRenderPass command.
         void RecordBeginRenderPass(VkCommandBuffer commands);
@@ -36,4 +36,4 @@
 
 }}  // namespace backend::vulkan
 
-#endif  // BACKEND_VULKAN_RENDERPASSINFOVK_H_
+#endif  // BACKEND_VULKAN_RENDERPASSDESCRIPTORVK_H_
diff --git a/src/backend/vulkan/RenderPipelineVk.cpp b/src/backend/vulkan/RenderPipelineVk.cpp
index 03548a0..37add1e 100644
--- a/src/backend/vulkan/RenderPipelineVk.cpp
+++ b/src/backend/vulkan/RenderPipelineVk.cpp
@@ -20,7 +20,7 @@
 #include "backend/vulkan/InputStateVk.h"
 #include "backend/vulkan/PipelineLayoutVk.h"
 #include "backend/vulkan/RenderPassCache.h"
-#include "backend/vulkan/RenderPassInfoVk.h"
+#include "backend/vulkan/RenderPassDescriptorVk.h"
 #include "backend/vulkan/ShaderModuleVk.h"
 #include "backend/vulkan/VulkanBackend.h"
 
diff --git a/src/backend/vulkan/VulkanBackend.cpp b/src/backend/vulkan/VulkanBackend.cpp
index e661f7b..49f0d87 100644
--- a/src/backend/vulkan/VulkanBackend.cpp
+++ b/src/backend/vulkan/VulkanBackend.cpp
@@ -28,7 +28,7 @@
 #include "backend/vulkan/NativeSwapChainImplVk.h"
 #include "backend/vulkan/PipelineLayoutVk.h"
 #include "backend/vulkan/RenderPassCache.h"
-#include "backend/vulkan/RenderPassInfoVk.h"
+#include "backend/vulkan/RenderPassDescriptorVk.h"
 #include "backend/vulkan/RenderPipelineVk.h"
 #include "backend/vulkan/SamplerVk.h"
 #include "backend/vulkan/ShaderModuleVk.h"
@@ -246,8 +246,9 @@
     QueueBase* Device::CreateQueue(QueueBuilder* builder) {
         return new Queue(builder);
     }
-    RenderPassInfoBase* Device::CreateRenderPassInfo(RenderPassInfoBuilder* builder) {
-        return new RenderPassInfo(builder);
+    RenderPassDescriptorBase* Device::CreateRenderPassDescriptor(
+        RenderPassDescriptorBuilder* builder) {
+        return new RenderPassDescriptor(builder);
     }
     RenderPipelineBase* Device::CreateRenderPipeline(RenderPipelineBuilder* builder) {
         return new RenderPipeline(builder);
diff --git a/src/backend/vulkan/VulkanBackend.h b/src/backend/vulkan/VulkanBackend.h
index a6844bf..c0daf1a 100644
--- a/src/backend/vulkan/VulkanBackend.h
+++ b/src/backend/vulkan/VulkanBackend.h
@@ -42,7 +42,7 @@
     class InputState;
     class PipelineLayout;
     class Queue;
-    class RenderPassInfo;
+    class RenderPassDescriptor;
     class RenderPipeline;
     class Sampler;
     class ShaderModule;
@@ -69,7 +69,7 @@
         using InputStateType = InputState;
         using PipelineLayoutType = PipelineLayout;
         using QueueType = Queue;
-        using RenderPassInfoType = RenderPassInfo;
+        using RenderPassDescriptorType = RenderPassDescriptor;
         using RenderPipelineType = RenderPipeline;
         using SamplerType = Sampler;
         using ShaderModuleType = ShaderModule;
@@ -122,7 +122,8 @@
         InputStateBase* CreateInputState(InputStateBuilder* builder) override;
         PipelineLayoutBase* CreatePipelineLayout(PipelineLayoutBuilder* builder) override;
         QueueBase* CreateQueue(QueueBuilder* builder) override;
-        RenderPassInfoBase* CreateRenderPassInfo(RenderPassInfoBuilder* builder) override;
+        RenderPassDescriptorBase* CreateRenderPassDescriptor(
+            RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SamplerBase* CreateSampler(SamplerBuilder* builder) override;
         ShaderModuleBase* CreateShaderModule(ShaderModuleBuilder* builder) override;
