खास जानकारी
rsForEach() फ़ंक्शन का इस्तेमाल, किसी स्क्रिप्ट के रूट कर्नेल को चालू करने के लिए किया जा सकता है.
अन्य फ़ंक्शन का इस्तेमाल, डाइमेंशन और मौजूदा इंडेक्स जैसे, किसी चल रहे कर्नेल के कॉल के बारे में जानकारी पाने के लिए किया जाता है. ये फ़ंक्शन, आर्ग्युमेंट के तौर पर rs_kernel_context लेते हैं.
खास जानकारी
प्रकार | |
---|---|
rs_for_each_strategy_t | सेल को प्रोसेस करने का सुझाया गया क्रम |
rs_kernel | कर्नेल फ़ंक्शन का हैंडल |
rs_kernel_context | kernel invocation context का हैंडल |
rs_script_call_t | सेल के अलग-अलग वर्शन की जानकारी |
फ़ंक्शन | |
---|---|
rsForEach | कर्नेल लॉन्च करता है |
rsForEachInternal | (इंटरनल एपीआई) स्लॉट नंबर के साथ, मौजूदा स्क्रिप्ट में कोई कर्नेल लॉन्च करें |
rsForEachWithOptions | विकल्पों के साथ एक कर्नेल लॉन्च करता है |
rsGetArray0 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array0 डाइमेंशन में इंडेक्स |
rsGetArray1 | तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array1 डाइमेंशन में इंडेक्स |
rsGetArray2 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array2 डाइमेंशन में इंडेक्स |
rsGetArray3 | तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array3 डाइमेंशन में इंडेक्स |
rsGetDimArray0 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array0 डाइमेंशन का साइज़ |
rsGetDimArray1 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array1 डाइमेंशन का साइज़ |
rsGetDimArray2 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array2 डाइमेंशन का साइज़ |
rsGetDimArray3 | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array3 डाइमेंशन का साइज़ |
rsGetDimHasFaces | बताए गए कर्नेल कॉन्टेक्स्ट के लिए एक से ज़्यादा चेहरे मौजूद हैं |
rsGetDimLod | बताए गए कर्नेल कॉन्टेक्स्ट के लिए, जानकारी के लेवल की संख्या |
rsGetDimX | दिए गए कर्नेल कॉन्टेक्स्ट के लिए X डाइमेंशन का साइज़ |
rsGetDimY | दिए गए कर्नेल कॉन्टेक्स्ट के लिए Y डाइमेंशन का साइज़ |
rsGetDimZ | दिए गए कर्नेल कॉन्टेक्स्ट के लिए Z डाइमेंशन का साइज़ |
rsGetFace | दिए गए कर्नेल कॉन्टेक्स्ट के लिए, चेहरे का कोऑर्डिनेट |
rsGetLod | तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, ज़्यादा जानकारी वाले लेवल के डाइमेंशन में इंडेक्स |
प्रकार
rs_for_each_strategy_t : सेल को प्रोसेस करने का सुझाया गया क्रम
इन वैल्यू वाला एक एनम:
RS_FOR_EACH_STRATEGY_SERIAL = 0 | एक-दूसरे से जुड़े मेमोरी क्षेत्रों को प्राथमिकता दें. |
---|---|
RS_FOR_EACH_STRATEGY_DONT_CARE = 1 | कोई प्राथमिकता नहीं. |
RS_FOR_EACH_STRATEGY_DST_LINEAR = 2 | डीएसटी को प्राथमिकता दें. |
RS_FOR_EACH_STRATEGY_TILE_SMALL = 3 | छोटे आयताकार क्षेत्रों को प्रोसेस करने को प्राथमिकता दें. |
RS_FOR_EACH_STRATEGY_TILE_MEDIUM = 4 | मध्यम आयताकार क्षेत्रों को प्रोसेस करने को प्राथमिकता दें. |
RS_FOR_EACH_STRATEGY_TILE_LARGE = 5 | बड़े आयताकार हिस्सों को प्रोसेस करने को प्राथमिकता दें. |
इस टाइप का इस्तेमाल यह सुझाव देने के लिए किया जाता है कि शुरू किए गए कर्नेल को ऐलोकेशन की सेल में कैसे दोहराया जाना चाहिए. यह सिर्फ़ एक हिंट है. हो सकता है कि सुझाव के मुताबिक लागू न किया जाए.
इस खास जानकारी से, चल रहे कर्नेल के कैश मेमोरी के व्यवहार को बेहतर बनाने में मदद मिल सकती है. उदाहरण के लिए, जब प्रोसेसिंग को कई कोर पर डिस्ट्रिब्यूट किया जाता है, तो कैश मेमोरी की लोकलिटी.
rs_kernel : किसी kernel फ़ंक्शन का हैंडल
void* का typedef एपीआई लेवल 24 में जोड़ा गया
किसी फ़ंक्शन के लिए ऐसा ऑपैक टाइप जिसे kernel एट्रिब्यूट की मदद से तय किया जाता है. इस तरह की वैल्यू का इस्तेमाल, rsForEach कॉल में कर्नेल लॉन्च करने के लिए किया जा सकता है.
rs_kernel_context : kernel invocation context का हैंडल
const struct rs_kernel_context_t * एपीआई लेवल 23 में जोड़ा गया
कर्नेल कॉन्टेक्स्ट में, उन ऐलोकेशन की सामान्य विशेषताएं होती हैं जिन पर बार-बार कार्रवाई की जा रही है. जैसे, डाइमेंशन. इसमें, फ़िलहाल प्रोसेस की जा रही सेल के ऐसे इंडेक्स भी शामिल होते हैं जिनका इस्तेमाल बहुत कम किया जाता है. जैसे, Array0 इंडेक्स या जानकारी का मौजूदा लेवल.
अपने kernel फ़ंक्शन में, rs_kernel_context टाइप का "context" नाम वाला एक खास पैरामीटर जोड़कर, kernel कॉन्टेक्स्ट को ऐक्सेस किया जा सकता है. उदाहरण के लिए, rsGetDimX() और rsGetArray0() देखें.
rs_script_call_t : सेल के लिए, बार-बार एक ही फ़ंक्शन लागू करने की जानकारी
ऐसा स्ट्रक्चर जिसमें ये फ़ील्ड शामिल हों:
rs_for_each_strategy_t रणनीति | फ़िलहाल, इसे अनदेखा किया जा रहा है. आने वाले समय में, सेल के लिए दोहराए जाने वाले डेटा की रणनीति का सुझाव दिया जाएगा. |
---|---|
uint32_t xStart | X डाइमेंशन में शुरुआती इंडेक्स. |
uint32_t xEnd | X डाइमेंशन में आखिरी इंडेक्स (सिर्फ़). |
uint32_t yStart | Y डाइमेंशन में इंडेक्स की शुरुआत. |
uint32_t yEnd | Y डाइमेंशन में आखिरी इंडेक्स (सिर्फ़). |
uint32_t zStart | Z डाइमेंशन में इंडेक्स की शुरुआत. |
uint32_t zEnd | Z डाइमेंशन में आखिरी इंडेक्स (सिर्फ़). |
uint32_t arrayStart | Array0 डाइमेंशन में शुरुआती इंडेक्स. |
uint32_t arrayEnd | Array0 डाइमेंशन में आखिरी इंडेक्स (सिर्फ़ आखिरी इंडेक्स). |
uint32_t array1Start | Array1 डाइमेंशन में शुरुआती इंडेक्स. |
uint32_t array1End | Array1 डाइमेंशन में आखिरी इंडेक्स (सिर्फ़ आखिरी इंडेक्स). |
uint32_t array2Start | Array2 डाइमेंशन में इंडेक्स की शुरुआत. |
uint32_t array2End | Array2 डाइमेंशन में आखिरी इंडेक्स (सिर्फ़ आखिरी इंडेक्स). |
uint32_t array3Start | Array3 डाइमेंशन में शुरुआती इंडेक्स. |
uint32_t array3End | Array3 डाइमेंशन में आखिरी इंडेक्स (सिर्फ़ एलिमेंट). |
इस स्ट्रक्चर का इस्तेमाल, rsForEach कॉल में, दोहराए जाने की जानकारी देने के लिए किया जाता है. फ़िलहाल, इसका इस्तेमाल सेल के सबसेट में प्रोसेसिंग को सीमित करने के लिए किया जाता है. आने वाले समय में, इसका इस्तेमाल सेल में सबसे सही तरीके से दोहराए जाने के बारे में जानकारी देने के लिए भी किया जाएगा.
'शुरू होने की तारीख' फ़ील्ड में, तारीख के साथ-साथ उससे पहले की तारीखें भी शामिल होती हैं. वहीं, 'खत्म होने की तारीख' फ़ील्ड में, तारीख के साथ-साथ उससे बाद की तारीखें शामिल नहीं होती हैं. उदाहरण के लिए, X डाइमेंशन में सेल 4, 5, 6, और 7 पर बार-बार जाने के लिए, xStart को 4 और xEnd को 8 पर सेट करें.
फ़ंक्शन
rsForEach : एक कर्नेल लॉन्च करता है
void rsForEach(rs_kernel kernel, ... ...); | एपीआई लेवल 24 में जोड़ा गया |
void rsForEach(rs_script script, rs_allocation input, rs_allocation output); | एपीआई लेवल 14 से 23 |
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData); | एपीआई लेवल 14 और उसके बाद के वर्शन से हटाया गया |
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData, const rs_script_call_t* sc); | एपीआई लेवल 14 और उसके बाद के वर्शन से हटाया गया |
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData, size_t usrDataLen); | एपीआई लेवल 14 - 20 |
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData, size_t usrDataLen, const rs_script_call_t* sc); | एपीआई लेवल 14 - 20 |
पैरामीटर
स्क्रिप्ट | कॉल करने के लिए स्क्रिप्ट. |
---|---|
इनपुट | सोर्स डेटा को किस सोर्स से असाइन किया गया है. |
output | वह जगह जहां तारीख लिखनी है. |
usrData | स्क्रिप्ट में पास करने के लिए, उपयोगकर्ता का तय किया गया डेटा. यह शून्य हो सकता है. |
sc | अतिरिक्त कंट्रोल की जानकारी, जिसका इस्तेमाल प्रोसेस किए जाने वाले ऐलोकेशन का कोई उप-क्षेत्र चुनने या वॉकिंग की रणनीति का सुझाव देने के लिए किया जाता है. यह शून्य हो सकता है. |
usrDataLen | userData स्ट्रक्चर का साइज़. ज़रूरत पड़ने पर, इसका इस्तेमाल डेटा की शैलो कॉपी बनाने के लिए किया जाएगा. |
कर्नेल | किसी फ़ंक्शन के लिए फ़ंक्शन डिज़ाइनेटर, जिसे kernel एट्रिब्यूट की मदद से तय किया जाता है. |
... | इनपुट और आउटपुट के लिए ऐलोकेशन |
यह फ़ंक्शन, शून्य या उससे ज़्यादा इनपुट एलोकेशन पर कर्नेल चलाता है. इन्हें rs_kernel आर्ग्युमेंट के बाद पास किया जाता है. अगर चुना गया केरल कोई वैल्यू दिखाता है, तो आखिरी आर्ग्युमेंट के तौर पर आउटपुट ऐलोकेशन तय करना ज़रूरी है. सभी इनपुट ऐलोकेशन और अगर आउटपुट ऐलोकेशन मौजूद है, तो उसमें भी एक जैसे डाइमेंशन होने चाहिए.
यह सिंक्रोनस फ़ंक्शन है. इस फ़ंक्शन को कॉल करने पर, इनपुट के लिए तय की गई सभी सेल के लिए काम पूरा होने के बाद ही नतीजा दिखता है. अगर कोर फ़ंक्शन कोई वैल्यू दिखाता है, तो कॉल तब तक इंतज़ार करता है, जब तक सभी नतीजे आउटपुट के लिए तय किए गए हिस्से में नहीं लिखे जाते.
एपीआई लेवल 23 तक, दिए गए स्क्रिप्ट में, "root" नाम वाले कर्नेल के तौर पर कर्नेल को चुपचाप तय किया जाता है. साथ ही, सिर्फ़ एक इनपुट ऐलोकेशन का इस्तेमाल किया जा सकता है. एपीआई लेवल 24 से, किसी भी तरह के कर्नेल फ़ंक्शन का इस्तेमाल किया जा सकता है. इसके लिए, कर्नेल आर्ग्युमेंट की वैल्यू तय करें. स्क्रिप्ट आर्ग्युमेंट हटा दिया गया है. मौजूदा स्क्रिप्ट में, कर्नेल की जानकारी दी जानी चाहिए. इसके अलावा, एक से ज़्यादा इनपुट का इस्तेमाल किया जा सकता है.
उदाहरण के लिए,
float __attribute__((kernel)) square(float a) {
return a * a;
}
void compute(rs_allocation ain, rs_allocation aout) {
rsForEach(square, ain, aout);
}
rsForEachInternal : (इंटरनल एपीआई) स्लॉट नंबर के साथ मौजूदा स्क्रिप्ट में कोई कर्नेल लॉन्च करें
void rsForEachInternal(int slot, rs_script_call_t* options, int hasOutput, int numInputs, rs_allocation* allocs); | एपीआई लेवल 24 में जोड़ा गया |
पैरामीटर
टाइम स्लॉट | |
---|---|
विकल्प | |
hasOutput | इससे पता चलता है कि कर्नेल आउटपुट जनरेट करता है या नहीं |
numInputs | इनपुट के ऐलोकेशन की संख्या |
allocs | इनपुट और आउटपुट के लिए ऐलोकेशन |
कर्नेल लॉन्च करने के लिए इंटरनल एपीआई.
rsForEachWithOptions : विकल्पों के साथ एक कर्नेल लॉन्च करता है
void rsForEachWithOptions(rs_kernel kernel, rs_script_call_t* options, ... ...); | एपीआई लेवल 24 में जोड़ा गया |
पैरामीटर
कर्नेल | किसी फ़ंक्शन के लिए फ़ंक्शन डिज़ाइनेटर, जिसे kernel एट्रिब्यूट की मदद से तय किया जाता है. |
---|---|
विकल्प | लॉन्च करने के विकल्प |
... | इनपुट और आउटपुट के लिए ऐलोकेशन |
rsForEach की तरह ही, कर्नेल को लॉन्च करता है. हालांकि, यह फ़ंक्शन इनपुट में मौजूद सभी सेल को प्रोसेस करने के बजाय, सिर्फ़ विकल्पों में बताए गए इंडेक्स स्पेस के सबस्पेस में मौजूद सेल को प्रोसेस करता है. विकल्पों के ज़रिए इंडेक्स स्पेस के बारे में साफ़ तौर पर बताए जाने पर, इस एपीआई का इस्तेमाल करके कर्नेल लॉन्च करने के लिए, इनपुट या आउटपुट के लिए कोई जगह तय करने की ज़रूरत नहीं होती. अगर ऐलोकेशन पास किए जाते हैं, तो वे कर्नेल फ़ंक्शन के लिए तय की गई आर्ग्युमेंट की संख्या और रिटर्न वैल्यू से मेल खाने चाहिए. आउटपुट ऐलोकेशन सिर्फ़ तब मौजूद होता है, जब कोर में कोई वैल्यू लौटाई जाती है.
उदाहरण के लिए,
rs_script_call_t opts = {0};
opts.xStart = 0;
opts.xEnd = dimX;
opts.yStart = 0;
opts.yEnd = dimY / 2;
rsForEachWithOptions(foo, &opts, out, out);
rsGetArray0 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array0 डाइमेंशन में इंडेक्स
uint32_t rsGetArray0(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
प्रोसेस की जा रही सेल के Array0 डाइमेंशन में इंडेक्स दिखाता है. यह इंडेक्स, दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक होता है.
कर्नेल कॉन्टेक्स्ट में, उन ऐलोकेशन की सामान्य विशेषताएं होती हैं जिन पर बार-बार रेंडर किया जाता है. साथ ही, इसमें Array0 इंडेक्स जैसे ऐसे इंडेक्स भी होते हैं जिनका इस्तेमाल कभी-कभार किया जाता है.
अपने kernel फ़ंक्शन में, rs_kernel_context टाइप का "context" नाम वाला एक खास पैरामीटर जोड़कर, kernel कॉन्टेक्स्ट को ऐक्सेस किया जा सकता है. उदाहरण के लिए,
short RS_KERNEL myKernel(short value, uint32_t x, rs_kernel_context context) {
// The current index in the common x, y, z dimensions are accessed by
// adding these variables as arguments. For the more rarely used indices
// to the other dimensions, extract them from the kernel context:
uint32_t index_a0 = rsGetArray0(context);
//...
}
अगर Array0 डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.
rsGetArray1 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array1 डाइमेंशन में इंडेक्स
uint32_t rsGetArray1(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
प्रोसेस की जा रही सेल के Array1 डाइमेंशन में इंडेक्स दिखाता है. यह इंडेक्स, दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक होता है. कॉन्टेक्स्ट की जानकारी के लिए, rsGetArray0() देखें.
अगर Array1 डाइमेंशन मौजूद नहीं है, तो 0 दिखाता है.
rsGetArray2 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array2 डाइमेंशन में इंडेक्स
uint32_t rsGetArray2(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
प्रोसेस की जा रही सेल के Array2 डाइमेंशन में इंडेक्स दिखाता है. यह इंडेक्स, दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक होता है. कॉन्टेक्स्ट के बारे में जानने के लिए, rsGetArray0() देखें.
अगर Array2 डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.
rsGetArray3 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array3 डाइमेंशन में इंडेक्स
uint32_t rsGetArray3(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
प्रोसेस की जा रही सेल के Array3 डाइमेंशन में इंडेक्स दिखाता है. यह इंडेक्स, दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक होता है. कॉन्टेक्स्ट की जानकारी के लिए, rsGetArray0() देखें.
अगर Array3 डाइमेंशन मौजूद नहीं है, तो 0 दिखाता है.
rsGetDimArray0 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array0 डाइमेंशन का साइज़
uint32_t rsGetDimArray0(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
यह फ़ंक्शन, दिए गए कर्नेल कॉन्टेक्स्ट के लिए Array0 डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Array0 डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.
rsGetDimArray1 : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, Array1 डाइमेंशन का साइज़
uint32_t rsGetDimArray1(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array1 डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Array1 डाइमेंशन मौजूद नहीं है, तो 0 दिखाता है.
rsGetDimArray2 : दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array2 डाइमेंशन का साइज़
uint32_t rsGetDimArray2(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
यह फ़ंक्शन, दिए गए कर्नेल कॉन्टेक्स्ट के लिए Array2 डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Array2 डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.
rsGetDimArray3 : दिए गए कर्नेल कॉन्टेक्स्ट के लिए, Array3 डाइमेंशन का साइज़
uint32_t rsGetDimArray3(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
यह फ़ंक्शन, दिए गए कर्नेल कॉन्टेक्स्ट के लिए Array3 डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Array3 डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.
rsGetDimHasFaces : बताए गए कर्नेल कॉन्टेक्स्ट के लिए एक से ज़्यादा चेहरे मौजूद हैं
bool rsGetDimHasFaces(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
रिटर्न
अगर एक से ज़्यादा चेहरे मौजूद हैं, तो यह फ़ंक्शन 'सही' दिखाता है. ऐसा न होने पर, 'गलत' दिखाता है. |
अगर केरल एक क्यूबमैप पर चल रहा है, तो यह फ़ंक्शन 'सही' दिखाता है, अगर एक से ज़्यादा फ़ेस मौजूद हैं. अन्य सभी मामलों में, यह FALSE दिखाता है. कॉन्टेक्स्ट के बारे में जानने के लिए, rsGetDimX() देखें.
rsAllocationGetDimFaces() फ़ंक्शन भी इसी तरह का है, लेकिन यह bool के बजाय 0 या 1 दिखाता है.
rsGetDimLod : दिए गए कर्नेल कॉन्टेक्स्ट के लिए, जानकारी के लेवल की संख्या
uint32_t rsGetDimLod(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए कर्नेल कॉन्टेक्स्ट के लिए, ज़्यादा जानकारी वाले लेवल की संख्या दिखाता है. यह mipmaps के लिए काम का है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर जानकारी के लेवल का इस्तेमाल नहीं किया जाता है, तो यह 0 दिखाता है.
rsAllocationGetDimLOD() फ़ंक्शन भी इसी तरह का है. हालांकि, यह लेवल की असल संख्या के बजाय 0 या 1 दिखाता है.
rsGetDimX : दिए गए kernel context के लिए X डाइमेंशन का साइज़
uint32_t rsGetDimX(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए kernel context के लिए X डाइमेंशन का साइज़ दिखाता है.
कर्नेल कॉन्टेक्स्ट में, उन ऐलोकेशन की सामान्य विशेषताएं होती हैं जिन पर बार-बार रेंडर किया जाता है. साथ ही, इसमें Array0 इंडेक्स जैसे ऐसे इंडेक्स भी होते हैं जिनका इस्तेमाल कभी-कभार किया जाता है.
इसे ऐक्सेस करने के लिए, अपने kernel फ़ंक्शन में rs_kernel_context टाइप का "context" नाम वाला एक खास पैरामीटर जोड़ें. उदाहरण के लिए,
int4 RS_KERNEL myKernel(int4 value, rs_kernel_context context) {
uint32_t size = rsGetDimX(context); //...
किसी खास ऐलोकेशन का डाइमेंशन पाने के लिए, rsAllocationGetDimX() का इस्तेमाल करें.
rsGetDimY : दिए गए कर्नेल कॉन्टेक्स्ट के लिए Y डाइमेंशन का साइज़
uint32_t rsGetDimY(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए कर्नेल कॉन्टेक्स्ट के लिए, X डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Y डाइमेंशन मौजूद नहीं है, तो 0 दिखाता है.
किसी खास ऐलोकेशन का डाइमेंशन पाने के लिए, rsAllocationGetDimY() का इस्तेमाल करें.
rsGetDimZ : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए Z डाइमेंशन का साइज़
uint32_t rsGetDimZ(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए कर्नेल कॉन्टेक्स्ट के लिए Z डाइमेंशन का साइज़ दिखाता है. संदर्भ की जानकारी के लिए, rsGetDimX() देखें.
अगर Z डाइमेंशन मौजूद नहीं है, तो 0 दिखाता है.
किसी खास ऐलोकेशन का डाइमेंशन पाने के लिए, rsAllocationGetDimZ() का इस्तेमाल करें.
rsGetFace : बताए गए कर्नेल कॉन्टेक्स्ट के लिए, चेहरे का कोऑर्डिनेट
rs_allocation_cubemap_face rsGetFace(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक, उस फ़ेस को दिखाता है जिस पर प्रोसेस की जा रही सेल मौजूद है. कॉन्टेक्स्ट की जानकारी के लिए, rsGetArray0() देखें.
अगर फ़ेस डाइमेंशन मौजूद नहीं है, तो RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X दिखाता है.
rsGetLod : तय किए गए कर्नेल कॉन्टेक्स्ट के लिए, ज़्यादा जानकारी वाले डाइमेंशन में इंडेक्स
uint32_t rsGetLod(rs_kernel_context context); | एपीआई लेवल 23 में जोड़ा गया |
प्रोसेस की जा रही सेल के लेवल ऑफ़ ज़्यादा जानकारी वाले डाइमेंशन में इंडेक्स दिखाता है. यह इंडेक्स, दिए गए कर्नेल कॉन्टेक्स्ट के मुताबिक होता है. कॉन्टेक्स्ट के बारे में जानने के लिए, rsGetArray0() देखें.
अगर जानकारी के लेवल डाइमेंशन मौजूद नहीं है, तो यह फ़ंक्शन 0 दिखाता है.