1Name 2 3 QCOM_texture_foveated2 4 5Name Strings 6 7 GL_QCOM_texture_foveated2 8 9Contact 10 11 Jeff Leger - jleger 'at' qti.qualcomm.com 12 13Contributors 14 15 Sam Holmes 16 Jonathan Wicks 17 Arpit Agarwal 18 19Status 20 21 Complete 22 23Version 24 25 Last Modified Date: October 12, 2020 26 Author Revision: 1.0 27 28Number 29 30 OpenGL ES Extension #331 31 32Dependencies 33 34 This extension requires QCOM_texture_foveated. 35 36 This extension interacts with QCOM_texture_foveated_subsampled_layout. 37 38Overview 39 40 This extension adds a new texture parameter that specifies a pixel density 41 below which rendering can be discarded during foveated rendering. 42 43New Tokens 44 45 Accepted as a value for <pname> for the TexParameter{if} and 46 TexParameter{if}v commands and for the <pname> parameter of 47 GetTexParameter{if}v: 48 49 TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 50 51 Add new rows to Table 8.19 (Texture parameters and their values): 52 53 Name | Type | Legal Values 54 ------------------------------------------------------------ 55 TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | float | Any float between 0.0 and 1.0 56 57 Add new rows to Table 21.10 Textures (state per texture object) 58 59 Get value | Type | Get Command | Initial Value | Description | Sec 60 ------------------------------------------------------------------ 61 TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | R[0.0,1.0] | GetTexParameter{if}v | 0.0 | Pixel density threshold for rendering cutoff | 8.19 62 63 This parameter defines the cutoff pixel density for a given focal 64 point at the location (px,py) on a texture layer in NDC as: 65 66 cutoff_pixel_density=TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM; 67 for(int i=0;i<focalPointsPerLayer;++i){ 68 focal_point_density = 1./max((focalX[i]-px)^2*gainX[i]^2+ 69 (focalY[i]-py)^2*gainY[i]^2-foveaArea[i],1.); 70 if(focal_point_density >= cutoff_pixel_density) 71 shade pixel; 72 } 73 74 The resulting contents of the buffer regions corresponding to the 75 discarded pixels will be undefined. 76 77New Procedures and Functions 78 79 None. 80 81Errors 82 83 INVALID_VALUE is generated by TexParameter{if} or TexParamter{if}v 84 if <pname> is TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM and <param> is a 85 float less than 0.0 or greater than 1.0. 86 87Issues 88 89 (1) What are the texture contents in discarded regions? 90 91 RESOLVED: After a draw operation where the foveation density cutoff 92 is applied, the contents of the discarded regions of the texture become 93 undefined. It is the application's responsibility to only sample from 94 the regions of the texture that are above the cutoff pixel density, as 95 specified by the provided foveation parameters. 96 97 (2) Are any other buffers impacted other than color buffer? 98 99 RESOLVED: Yes. Contents of the depth and stencil buffers will be 100 undefined for discarded regions. 101 102 (3) What is the impact on primitive/geometric data for discarded regions? 103 104 RESOLVED: For the discarded regions, primitive data is also discarded so 105 the behavior of all shaders in the vertex processing stage is undefined 106 for these regions (such as UAV writes and transform feedback). 107 108 109Revision History 110 111 Rev. Date Author Changes 112 ---- -------- -------- ----------------------------------------- 113 1.0 10/12/20 jleger Initial version. 114 115