title: Using Vulkan + OpenXR, getting strange transparency results on quest (not present in PCVR)
body: <p>The long story short is that alpha values are behaving very strangely: transitioning reasonably between 1.0 to 0.5, but from 0.5 to 0.0 transitioning from half-opacity-{color} to opaque-black.</p>
  <p><a href="https://i.stack.imgur.com/I0tuu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/I0tuu.png" alt="enter image description here" /></a></p>
  <p>^ this is my font renderer (captured from quest beamed to iphone) with the shader replaced. Rather than display a font, it <em>should</em> be displaying red quads fading in and out of transparency according to the sin of the fragment x coordinate. I have no idea where the &quot;black&quot; is coming from. Here is the shader:</p>
  <pre><code>#version 450
  #extension GL_KHR_vulkan_glsl : enable
  #extension GL_ARB_separate_shader_objects : enable
  #extension GL_EXT_multiview : enable
  layout(set = 0, binding = 2) uniform sampler2D colorSampler;
  layout(location = 0) in vec2 fragUV;
  layout(location = 0) out vec4 outColor;
  void main()
  {
    float x = (sin(gl_FragCoord.x/20.0)+1.0)/2.0;
    outColor = vec4(1.0,0.0,0.0,x)
  }
  </code></pre>
  <p>and my pipeline blend config is:</p>
  <pre><code>VkPipelineColorBlendAttachmentState colorBlendAttachment = {};
    //alpha blend
    colorBlendAttachment.colorWriteMask =
      VK_COLOR_COMPONENT_R_BIT |
      VK_COLOR_COMPONENT_G_BIT |
      VK_COLOR_COMPONENT_B_BIT |
      VK_COLOR_COMPONENT_A_BIT |
      0;
    colorBlendAttachment.blendEnable = VK_TRUE;
    colorBlendAttachment.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
    colorBlendAttachment.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
    colorBlendAttachment.colorBlendOp = VK_BLEND_OP_ADD;
    colorBlendAttachment.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
    colorBlendAttachment.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
    colorBlendAttachment.alphaBlendOp = VK_BLEND_OP_ADD;
  
  VkPipelineColorBlendStateCreateInfo colorBlendInfo = {};
  
    colorBlendInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
    colorBlendInfo.logicOpEnable = VK_FALSE;
    colorBlendInfo.logicOp = VK_LOGIC_OP_COPY;
    colorBlendInfo.attachmentCount = 1;
    colorBlendInfo.pAttachments = &amp;colorBlendAttachment;
    colorBlendInfo.blendConstants[0] = 0.0f;
    colorBlendInfo.blendConstants[1] = 0.0f;
    colorBlendInfo.blendConstants[2] = 0.0f;
    colorBlendInfo.blendConstants[3] = 0.0f;
  </code></pre>
  <p>The wackiest bit is that this works perfectly (as expected) when run from pcvr (with no major differences in code paths between the two: same spirv, same pipeline generation, etc...)</p>