1Name 2 3 QCOM_binning_control 4 5Name Strings 6 7 GL_QCOM_binning_control 8 9Contributors 10 11 Maurice Ribble 12 13Contact 14 15 Maurice Ribble (mribble 'at' qualcomm.com) 16 17Notice 18 19 Copyright Qualcomm 2010 20 21IP Status 22 23 Qualcomm Proprietary. 24 25Status 26 27 Draft 28 29Version 30 31 Date: May 2, 2012 32 33Number 34 35 OpenGL ES Extension #119 36 37Dependencies 38 39 OpenGL ES 1.0 is required. 40 41 This extension is written against the OpenGL ES 2.0 specification. 42 43Overview 44 45 This extension adds some new hints to give more control to application 46 developers over the driver's binning algorithm. 47 48 Only change this state right before changing rendertargets or right after 49 a swap or there will be a large performance penalty. 50 51Issues 52 53 None 54 55New Procedures and Functions 56 57 None 58 59New Tokens 60 61 Accepted by the <target> parameter of Hint: 62 63 BINNING_CONTROL_HINT_QCOM 0x8FB0 64 65 Accepted by the <hint> parameter of Hint: 66 CPU_OPTIMIZED_QCOM 0x8FB1 67 GPU_OPTIMIZED_QCOM 0x8FB2 68 RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 69 DONT_CARE 0x1100 70 71Additions to Section 5.1 (Hints) of the OpenGL ES 2.0 Specification 72 73 Replace "target is a symoblic...." with: 74 75 target is a symbolic constant indicating the behavior to be controlled, and 76 hint is a symbolic constant indicating what type of behavior is desired. 77 target can be GENERATE_MIPMAP_HINT or BINNING_CONTROL_HINT_QCOM. 78 GENERATE_MIPMAP_HINT indicates the desired quality and performance of 79 mipmap level generation with GenerateMipmap. When target is 80 GENERATE_MIPMAP_HINT hint must be one of FASTEST, indicating that the most 81 efficient option should be chosen; NICEST, indicating that the highest 82 quality option should be chosen; and DONT_CARE, indicating no preference in 83 the matter. A target of BINNING_CONTROL_HINT_QCOM gives hints at what 84 binning algorithm is to be used. When the target is BINNING_CONTROL_QCOM 85 the hint must be one of the values below: 86 87 CPU_OPTIMIZED_QCOM - binning algorithm focuses on lower CPU 88 utilization (this path increases vertex 89 processing) 90 GPU_OPTIMIZED_QCOM - binning algorithm focuses on lower GPU 91 utilization (this path increases CPU 92 usage) 93 RENDER_DIRECT_TO_FRAMEBUFFER_QCOM - render directly to the final 94 framebuffer and bypass tile memory 95 (this path has a low CPU usage, but 96 in some cases uses more memory 97 bandwidth) 98 DONT_CARE - the driver picks which binning 99 algorithm to use (default) 100 101 The Qualcomm Adreno 200 family does not support 102 RENDER_DIRECT_TO_FRAMEBUFFER_QCOM option and this hint will be ignored on that 103 hardware. 104 105 When BINNING_CONTROL_QCOM do so right before changing rendertargets or right after 106 swap or there will be a large performance penalty. 107 108New State 109 110Get Value Type Command Value 111--------- ---- ------- ------- 112BINNING_CONTROL_HINT_QCOM special GetIntegerv DONT_CARE 113 114Revision History 115 116 6/15/2010 Created. 117 6/22/2010 Name changes, cleanup, add token numbers. 118 10/11/2010 Simplified extension to remove some of the extra modes. 119 1/27/2012 Added in RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 120 5/2/2012 Added IP Status 121