OpenGL ES着色器語言規範 10 常見問題(34)

目錄

10.34 提高最低要求


10.34 提高最低要求

自版本1.00發佈以來,很明顯所有實現都支持超過最低要求。一些實現遠遠超出了最小值。

最低要求不包括能夠使用循環索引索引數組,這是一個非常有用的功能。

作爲語言規範的一部分但超出最小值的特徵應該如何暴露?

選擇1:什麼都不做。 應用程序可以通過嘗試編譯來測試特定功能的存在。 如果不支持,編譯將失敗。

這被認爲是不令人滿意的,因爲沒有動力讓新設計支持可選功能。

選項2:定義擴展。 應用程序可以測試擴展,但缺少擴展並不一定意味着不支持這些功能。 如果需要公開多組可選功能,則擴展將是合適的。

選項3:定義新的語言版本,例如1.01。 着色器將被要求包含#version 101,並且編譯失敗將需要不支持擴展功能的編譯器。即使版本指令支持擴展功能集,它也會導致現有編譯器編譯失敗。

選項4:定義新的語言版本1.01,但着色器不需要包含#version 101.支持擴展功能集的編譯器可能返回__VERSION__ = 101.不支持擴展功能集的編譯器必須繼續返回__VERSION__ = 100並且 #version 101必須失敗。

這允許已支持1.01功能的現有實現繼續支持1.01着色器,前提是着色器不聲明#version 101。

選項5:定義新的語言版本,但仍稱其爲版本1.00。
通常,新功能無法添加到現有已發佈的規範中。 但是,在這種情況下,功能已經是規範的一部分。 當前指定爲可選的功能是強制性的。

A:選項5:將發佈當前版本(版本1.00)的新修訂版。

 

應放寬哪些最低要求?

選項1:僅使用常量表達式,循環索引或組合索引到數組(以及矩陣和向量)。 所有已知的實現已經支持這一點。

選項2:使用任何表達式索引到數組中。 一些實現已經支持這一點,但它不太常見。

選項3:定義多個擴展。 第一個將暴露普遍支持的功能,後續擴展將暴露不太常用的功能。

A:只應公開通用支持的功能。

 

索引是否適用於向量和矩陣以及數組?

A:是的。

 

是否應該指定迭代次數的限制?

A:

 

擴展控制流量是否應同時暴露? 與索引一樣,大多數實現都支持超過最小值。

A:不,只顯示索引。

 

版權:https://blog.csdn.net/flycatdeng/article/details/88772031

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章