X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=external%2Fvulkancts%2Fmodules%2Fvulkan%2FvktDrawUtil.hpp;h=adda78b6aea44f7055b436e83477042b7149f3f2;hb=dae5394b0fadda4abdbdc964bf5dc6ee29151fc8;hp=8e64ac059b19229a8e180ac3bdc137ef9f71c40b;hpb=a8b2c3d08d3eb8b1b83ef7593e2a599781465280;p=platform%2Fupstream%2FVK-GL-CTS.git diff --git a/external/vulkancts/modules/vulkan/vktDrawUtil.hpp b/external/vulkancts/modules/vulkan/vktDrawUtil.hpp index 8e64ac0..adda78b 100644 --- a/external/vulkancts/modules/vulkan/vktDrawUtil.hpp +++ b/external/vulkancts/modules/vulkan/vktDrawUtil.hpp @@ -40,18 +40,6 @@ namespace vkt namespace drawutil { -struct Shader -{ - vk::VkShaderStageFlagBits stage; - const vk::ProgramBinary* binary; - - Shader (const vk::VkShaderStageFlagBits stage_, const vk::ProgramBinary& binary_) - : stage (stage_) - , binary (&binary_) - { - } -}; - struct DrawState { vk::VkPrimitiveTopology topology; @@ -62,6 +50,7 @@ struct DrawState bool depthTestEnable; bool depthWriteEnable; rr::TestFunc compareOp; + bool depthBoundsTestEnable; bool blendEnable; float lineWidth; deUint32 numPatchControlPoints; @@ -100,8 +89,8 @@ public: virtual void draw (void) = 0; virtual tcu::ConstPixelBufferAccess getColorPixels (void) const = 0; protected: - const DrawState& m_drawState; - const DrawCallData& m_drawCallData; + const DrawState& m_drawState; + const DrawCallData& m_drawCallData; }; class ReferenceDrawContext : public DrawContext @@ -125,26 +114,46 @@ private: tcu::TextureLevel m_refImage; }; -struct VulkanProgram +struct VulkanShader { - const std::vector& shaders; - vk::Move depthImageView; - vk::Move descriptorSetLayout; - vk::Move descriptorSet; + vk::VkShaderStageFlagBits stage; + const vk::ProgramBinary* binary; - VulkanProgram (const std::vector& shaders_) - : shaders (shaders_) + VulkanShader (const vk::VkShaderStageFlagBits stage_, const vk::ProgramBinary& binary_) + : stage (stage_) + , binary (&binary_) { } }; +struct VulkanProgram +{ + std::vector shaders; + vk::VkImageView depthImageView; // \todo [2017-06-06 pyry] This shouldn't be here? Doesn't logically belong to program + vk::VkDescriptorSetLayout descriptorSetLayout; + vk::VkDescriptorSet descriptorSet; + + VulkanProgram (const std::vector& shaders_) + : shaders (shaders_) + , depthImageView (0) + , descriptorSetLayout (0) + , descriptorSet (0) + {} + + VulkanProgram (void) + : depthImageView (0) + , descriptorSetLayout (0) + , descriptorSet (0) + {} +}; + class VulkanDrawContext : public DrawContext { public: VulkanDrawContext (Context& context, const DrawState& drawState, const DrawCallData& drawCallData, - VulkanProgram& vulkanProgram); + const VulkanProgram& vulkanProgram); virtual ~VulkanDrawContext (void); virtual void draw (void); virtual tcu::ConstPixelBufferAccess getColorPixels (void) const; @@ -154,7 +163,7 @@ private: MAX_NUM_SHADER_MODULES = 5, }; Context& m_context; - VulkanProgram& m_program; + const VulkanProgram& m_program; de::MovePtr m_colorImage; de::MovePtr m_resolveImage; de::MovePtr m_colorAttachmentBuffer;