| Name |
| |
| QCOM_texture_foveated2 |
| |
| Name Strings |
| |
| GL_QCOM_texture_foveated2 |
| |
| Contact |
| |
| Jeff Leger - jleger 'at' qti.qualcomm.com |
| |
| Contributors |
| |
| Sam Holmes |
| Jonathan Wicks |
| Arpit Agarwal |
| |
| Status |
| |
| Complete |
| |
| Version |
| |
| Last Modified Date: October 12, 2020 |
| Author Revision: 1.0 |
| |
| Number |
| |
| OpenGL ES Extension #331 |
| |
| Dependencies |
| |
| This extension requires QCOM_texture_foveated. |
| |
| This extension interacts with QCOM_texture_foveated_subsampled_layout. |
| |
| Overview |
| |
| This extension adds a new texture parameter that specifies a pixel density |
| below which rendering can be discarded during foveated rendering. |
| |
| New Tokens |
| |
| Accepted as a value for <pname> for the TexParameter{if} and |
| TexParameter{if}v commands and for the <pname> parameter of |
| GetTexParameter{if}v: |
| |
| TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 |
| |
| Add new rows to Table 8.19 (Texture parameters and their values): |
| |
| Name | Type | Legal Values |
| ------------------------------------------------------------ |
| TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | float | Any float between 0.0 and 1.0 |
| |
| Add new rows to Table 21.10 Textures (state per texture object) |
| |
| Get value | Type | Get Command | Initial Value | Description | Sec |
| ------------------------------------------------------------------ |
| TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | R[0.0,1.0] | GetTexParameter{if}v | 0.0 | Pixel density threshold for rendering cutoff | 8.19 |
| |
| This parameter defines the cutoff pixel density for a given focal |
| point at the location (px,py) on a texture layer in NDC as: |
| |
| cutoff_pixel_density=TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM; |
| for(int i=0;i<focalPointsPerLayer;++i){ |
| focal_point_density = 1./max((focalX[i]-px)^2*gainX[i]^2+ |
| (focalY[i]-py)^2*gainY[i]^2-foveaArea[i],1.); |
| if(focal_point_density >= cutoff_pixel_density) |
| shade pixel; |
| } |
| |
| The resulting contents of the buffer regions corresponding to the |
| discarded pixels will be undefined. |
| |
| New Procedures and Functions |
| |
| None. |
| |
| Errors |
| |
| INVALID_VALUE is generated by TexParameter{if} or TexParamter{if}v |
| if <pname> is TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM and <param> is a |
| float less than 0.0 or greater than 1.0. |
| |
| Issues |
| |
| (1) What are the texture contents in discarded regions? |
| |
| RESOLVED: After a draw operation where the foveation density cutoff |
| is applied, the contents of the discarded regions of the texture become |
| undefined. It is the application's responsibility to only sample from |
| the regions of the texture that are above the cutoff pixel density, as |
| specified by the provided foveation parameters. |
| |
| (2) Are any other buffers impacted other than color buffer? |
| |
| RESOLVED: Yes. Contents of the depth and stencil buffers will be |
| undefined for discarded regions. |
| |
| (3) What is the impact on primitive/geometric data for discarded regions? |
| |
| RESOLVED: For the discarded regions, primitive data is also discarded so |
| the behavior of all shaders in the vertex processing stage is undefined |
| for these regions (such as UAV writes and transform feedback). |
| |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- -------- -------- ----------------------------------------- |
| 1.0 10/12/20 jleger Initial version. |
| |