[{"data":1,"prerenderedAt":379},["ShallowReactive",2],{"1af7nedylR":3},{"title":4,"description":5,"type":6,"xrefs":7,"body":8,"_type":378,"_id":4},"PrimitiveShadingRateKHR","Primitive contribution to fragment shading rate","builtins",[],{"type":9,"children":10,"toc":374},"root",[11,24,46,72,90,102],{"type":12,"tag":13,"props":14,"children":16},"element","h6",{"id":15},"primitiveshadingratekhr",[17],{"type":12,"tag":18,"props":19,"children":21},"code",{"className":20},[],[22],{"type":23,"value":4},"text",{"type":12,"tag":25,"props":26,"children":27},"p",{},[28,30,35,37,44],{"type":23,"value":29},"Decorating a variable with the ",{"type":12,"tag":18,"props":31,"children":33},{"className":32},[],[34],{"type":23,"value":4},{"type":23,"value":36}," built-in\ndecoration will make that variable contain the\n",{"type":12,"tag":38,"props":39,"children":41},"a",{"href":40},"/chapters/primsrast#primsrast-fragment-shading-rate-primitive",[42],{"type":23,"value":43},"primitive fragment shading\nrate",{"type":23,"value":45},".",{"type":12,"tag":25,"props":47,"children":48},{},[49,51,56,58,64,66,70],{"type":23,"value":50},"The value written to the variable decorated with\n",{"type":12,"tag":18,"props":52,"children":54},{"className":53},[],[55],{"type":23,"value":4},{"type":23,"value":57}," by the last\n",{"type":12,"tag":38,"props":59,"children":61},{"href":60},"/man/VkGraphicsPipelineCreateInfo#pipelines-graphics-subsets-pre-rasterization",[62],{"type":23,"value":63},"pre-rasterization shader\nstage",{"type":23,"value":65}," in the pipeline is used as the\n",{"type":12,"tag":38,"props":67,"children":68},{"href":40},[69],{"type":23,"value":43},{"type":23,"value":71},".\nOutputs in previous shader stages are ignored.",{"type":12,"tag":25,"props":73,"children":74},{},[75,77,81,83,88],{"type":23,"value":76},"If the last active\n",{"type":12,"tag":38,"props":78,"children":79},{"href":60},[80],{"type":23,"value":63},{"type":23,"value":82}," shader entry point’s interface does not include a variable decorated\nwith ",{"type":12,"tag":18,"props":84,"children":86},{"className":85},[],[87],{"type":23,"value":4},{"type":23,"value":89},", then it is as if the shader specified a\nfragment shading rate value of 0, indicating a horizontal and vertical rate\nof 1 pixel.",{"type":12,"tag":25,"props":91,"children":92},{},[93,95,100],{"type":23,"value":94},"If a shader has ",{"type":12,"tag":18,"props":96,"children":98},{"className":97},[],[99],{"type":23,"value":4},{"type":23,"value":101}," in the output interface and\nthere is an execution path through the shader that does not write to it, its\nvalue is undefined: for executions of the shader that take that path.",{"type":12,"tag":103,"props":104,"children":106},"validity-group",{"name":105},"Valid Usage",[107,177,217,236,270,301,328],{"type":12,"tag":108,"props":109,"children":111},"validity-field",{"name":110},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484",[112,160],{"type":12,"tag":25,"props":113,"children":114},{},[115,117,122,124,129,131,137,139,145,146,152,154],{"type":23,"value":116},"The ",{"type":12,"tag":18,"props":118,"children":120},{"className":119},[],[121],{"type":23,"value":4},{"type":23,"value":123}," decoration ",{"type":12,"tag":125,"props":126,"children":128},"normative",{"type":127},"must",[],{"type":23,"value":130}," be used only within\nthe ",{"type":12,"tag":18,"props":132,"children":134},{"className":133},[],[135],{"type":23,"value":136},"MeshEXT",{"type":23,"value":138},", ",{"type":12,"tag":18,"props":140,"children":142},{"className":141},[],[143],{"type":23,"value":144},"MeshNV",{"type":23,"value":138},{"type":12,"tag":18,"props":147,"children":149},{"className":148},[],[150],{"type":23,"value":151},"Vertex",{"type":23,"value":153},", or ",{"type":12,"tag":18,"props":155,"children":157},{"className":156},[],[158],{"type":23,"value":159},"Geometry",{"type":12,"tag":25,"props":161,"children":162},{},[163,169,171],{"type":12,"tag":18,"props":164,"children":166},{"className":165},[],[167],{"type":23,"value":168},"Execution",{"type":23,"value":170}," ",{"type":12,"tag":18,"props":172,"children":174},{"className":173},[],[175],{"type":23,"value":176},"Model",{"type":12,"tag":108,"props":178,"children":180},{"name":179},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485",[181],{"type":12,"tag":25,"props":182,"children":183},{},[184,186,191,192,195,197,203,204,210,211],{"type":23,"value":185},"The variable decorated with ",{"type":12,"tag":18,"props":187,"children":189},{"className":188},[],[190],{"type":23,"value":4},{"type":23,"value":170},{"type":12,"tag":125,"props":193,"children":194},{"type":127},[],{"type":23,"value":196}," be\ndeclared using the ",{"type":12,"tag":18,"props":198,"children":200},{"className":199},[],[201],{"type":23,"value":202},"Output",{"type":23,"value":170},{"type":12,"tag":18,"props":205,"children":207},{"className":206},[],[208],{"type":23,"value":209},"Storage",{"type":23,"value":170},{"type":12,"tag":18,"props":212,"children":214},{"className":213},[],[215],{"type":23,"value":216},"Class",{"type":12,"tag":108,"props":218,"children":220},{"name":219},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486",[221],{"type":12,"tag":25,"props":222,"children":223},{},[224,225,230,231,234],{"type":23,"value":185},{"type":12,"tag":18,"props":226,"children":228},{"className":227},[],[229],{"type":23,"value":4},{"type":23,"value":170},{"type":12,"tag":125,"props":232,"children":233},{"type":127},[],{"type":23,"value":235}," be\ndeclared as a scalar 32-bit integer value",{"type":12,"tag":108,"props":237,"children":239},{"name":238},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487",[240],{"type":12,"tag":25,"props":241,"children":242},{},[243,245,250,251,254,256,262,264],{"type":23,"value":244},"The value written to ",{"type":12,"tag":18,"props":246,"children":248},{"className":247},[],[249],{"type":23,"value":4},{"type":23,"value":170},{"type":12,"tag":125,"props":252,"children":253},{"type":127},[],{"type":23,"value":255}," include no more\nthan one of ",{"type":12,"tag":18,"props":257,"children":259},{"className":258},[],[260],{"type":23,"value":261},"Vertical2Pixels",{"type":23,"value":263}," and ",{"type":12,"tag":18,"props":265,"children":267},{"className":266},[],[268],{"type":23,"value":269},"Vertical4Pixels",{"type":12,"tag":108,"props":271,"children":273},{"name":272},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488",[274],{"type":12,"tag":25,"props":275,"children":276},{},[277,278,283,284,287,288,294,295],{"type":23,"value":244},{"type":12,"tag":18,"props":279,"children":281},{"className":280},[],[282],{"type":23,"value":4},{"type":23,"value":170},{"type":12,"tag":125,"props":285,"children":286},{"type":127},[],{"type":23,"value":255},{"type":12,"tag":18,"props":289,"children":291},{"className":290},[],[292],{"type":23,"value":293},"Horizontal2Pixels",{"type":23,"value":263},{"type":12,"tag":18,"props":296,"children":298},{"className":297},[],[299],{"type":23,"value":300},"Horizontal4Pixels",{"type":12,"tag":108,"props":302,"children":304},{"name":303},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489",[305],{"type":12,"tag":25,"props":306,"children":307},{},[308,309,314,315,318,320,326],{"type":23,"value":244},{"type":12,"tag":18,"props":310,"children":312},{"className":311},[],[313],{"type":23,"value":4},{"type":23,"value":170},{"type":12,"tag":125,"props":316,"children":317},{"type":127},[],{"type":23,"value":319}," not have any\nbits set other than those defined by ",{"type":12,"tag":321,"props":322,"children":323},"em",{},[324],{"type":23,"value":325},"Fragment Shading Rate Flags",{"type":23,"value":327},"\nenumerants in the SPIR-V specification",{"type":12,"tag":108,"props":329,"children":331},{"name":330},"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-07059",[332],{"type":12,"tag":25,"props":333,"children":334},{},[335,336,341,343,348,349,354,355,360,361,364,366,372],{"type":23,"value":185},{"type":12,"tag":18,"props":337,"children":339},{"className":338},[],[340],{"type":23,"value":4},{"type":23,"value":342}," within the\n",{"type":12,"tag":18,"props":344,"children":346},{"className":345},[],[347],{"type":23,"value":136},{"type":23,"value":170},{"type":12,"tag":18,"props":350,"children":352},{"className":351},[],[353],{"type":23,"value":168},{"type":23,"value":170},{"type":12,"tag":18,"props":356,"children":358},{"className":357},[],[359],{"type":23,"value":176},{"type":23,"value":170},{"type":12,"tag":125,"props":362,"children":363},{"type":127},[],{"type":23,"value":365}," also be decorated with the\n",{"type":12,"tag":18,"props":367,"children":369},{"className":368},[],[370],{"type":23,"value":371},"PerPrimitiveEXT",{"type":23,"value":373}," decoration",{"title":375,"searchDepth":376,"depth":376,"links":377},"",2,[],"markdown",1725732533398]