ฟังก์ชันและประเภทการเรียกใช้เคอร์เนลของ RenderScript

ภาพรวม

คุณสามารถใช้ฟังก์ชัน rsForEach() เพื่อเรียกใช้เคอร์เนลรูทของสคริปต์

ส่วนฟังก์ชันอื่นๆ ใช้เพื่อรับลักษณะของการเรียกใช้เคอร์เนลที่ทำงานอยู่ เช่น มิติข้อมูลและดัชนีปัจจุบัน ฟังก์ชันเหล่านี้ใช้ rs_kernel_context เป็นอาร์กิวเมนต์

สรุป

ประเภท
rs_for_each_strategy_t ลําดับการประมวลผลเซลล์ที่แนะนํา
rs_kernel แฮนเดิลไปยังฟังก์ชันเคอร์เนล
rs_kernel_context แฮนเดิลสำหรับบริบทการเรียกใช้เคอร์เนล
rs_script_call_t ข้อมูลการทำซ้ำของเซลล์
ฟังก์ชัน
rsForEach เปิดใช้งานเคอร์เนล
rsForEachInternal (API ภายใน) เปิดใช้งานเคอร์เนลในสคริปต์ปัจจุบัน (พร้อมหมายเลขช่อง)
rsForEachWithOptions เปิดเคอร์เนลพร้อมตัวเลือก
rsGetArray0 ดัชนีในมิติข้อมูล Array0 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetArray1 ดัชนีในมิติข้อมูล Array1 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetArray2 ดัชนีในมิติข้อมูล Array2 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetArray3 ดัชนีในมิติข้อมูล Array3 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetDimArray0 ขนาดของมิติข้อมูล Array0 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetDimArray1 ขนาดของมิติข้อมูล Array1 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetDimArray2 ขนาดของมิติข้อมูล Array2 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetDimArray3 ขนาดของมิติข้อมูล Array3 สําหรับบริบทเคอร์เนลที่ระบุ
rsGetDimHasFaces มีใบหน้ามากกว่า 1 ใบหน้าสำหรับบริบทเคอร์เนลที่ระบุ
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ต้องการใช้ DST
RS_FOR_EACH_STRATEGY_TILE_SMALL = 3แนะนำให้ประมวลผลพื้นที่สี่เหลี่ยมผืนผ้าขนาดเล็ก
RS_FOR_EACH_STRATEGY_TILE_MEDIUM = 4แนะนำให้ประมวลผลภูมิภาคสี่เหลี่ยมผืนผ้าขนาดกลาง
RS_FOR_EACH_STRATEGY_TILE_LARGE = 5แนะนำให้ประมวลผลพื้นที่สี่เหลี่ยมผืนผ้าขนาดใหญ่

ประเภทนี้ใช้เพื่อแนะนำวิธีที่เคอร์เนลที่เรียกใช้ควรวนซ้ำเซลล์ของการจัดสรร นี่เป็นเพียงคำแนะนำเท่านั้น การติดตั้งใช้งานอาจไม่เป็นไปตามคำแนะนำ

ข้อกําหนดนี้ช่วยในลักษณะการแคชของเคิร์ดที่ทํางาน เช่น ความเป็นตําแหน่งแคชเมื่อมีการกระจายการประมวลผลไปยังหลายแกน

rs_kernel : แฮนเดิลไปยังฟังก์ชันเคอร์เนล

typedef ของ: void*     เพิ่มใน API ระดับ 24

ประเภททึบสำหรับฟังก์ชันที่กําหนดด้วยแอตทริบิวต์เคอร์เนล ค่าประเภทนี้สามารถใช้ในการเรียก rsForEach เพื่อเปิดใช้งานเคอร์เนล

rs_kernel_context : แฮนเดิลสำหรับบริบทการเรียกใช้เคอร์เนล

typedef ของ: const struct rs_kernel_context_t *     เพิ่มใน API ระดับ 23

บริบทเคอร์เนลมีลักษณะทั่วไปของการจัดสรรที่วนซ้ำ เช่น มิติข้อมูล นอกจากนี้ยังมีดัชนีของเซลล์ที่ประมวลผลอยู่ในปัจจุบันซึ่งไม่ค่อยได้ใช้ เช่น ดัชนี Array0 หรือระดับรายละเอียดปัจจุบัน

คุณสามารถเข้าถึงบริบทเคอร์เนลได้โดยเพิ่มพารามิเตอร์พิเศษชื่อ "context" ประเภท rs_kernel_context ลงในฟังก์ชันเคอร์เนล ดูตัวอย่างได้ที่ 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 ปัจจุบันใช้เพื่อจํากัดการประมวลผลให้เฉพาะเซลล์ชุดย่อย ในเวอร์ชันในอนาคต ระบบจะใช้คำอธิบายประกอบนี้เพื่อแสดงคำแนะนำเกี่ยวกับวิธีที่ดีที่สุดในการวนซ้ำเซลล์ด้วย

ฟิลด์ "เริ่มต้น" จะนับรวมและฟิลด์ "สิ้นสุด" จะไม่นับรวม เช่น หากต้องการวนซ้ำเซลล์ที่ 4, 5, 6 และ 7 ในมิติข้อมูล X ให้ตั้งค่า xStart เป็น 4 และ xEnd เป็น 8

ฟังก์ชัน

rsForEach : เปิดใช้งานเคอร์เนล

void rsForEach(rs_kernel kernel, ... ...); เพิ่มใน API ระดับ 24
void rsForEach(rs_script script, rs_allocation input, rs_allocation output); API ระดับ 14 - 23
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData); นำออกจาก API ระดับ 14 ขึ้นไป
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData, const rs_script_call_t* sc); นำออกจาก API ระดับ 14 ขึ้นไป
void rsForEach(rs_script script, rs_allocation input, rs_allocation output, const void* usrData, size_t usrDataLen); API ระดับ 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); API ระดับ 14 - 20
พารามิเตอร์
สคริปต์สคริปต์เพื่อโทร
อินพุตแหล่งที่มาของข้อมูล
เอาต์พุตการจัดสรรเพื่อเขียนวันที่
usrDataข้อมูลที่ผู้ใช้กําหนดเพื่อส่งไปยังสคริปต์ อาจเป็นค่า Null
scข้อมูลเพิ่มเติมสำหรับการควบคุมที่ใช้เลือกภูมิภาคย่อยของการแบ่งสรรที่จะประมวลผลหรือแนะนำกลยุทธ์การเดิน อาจเป็นค่า Null
usrDataLenขนาดของโครงสร้าง userData ซึ่งจะใช้เพื่อทําสําเนาข้อมูลแบบไม่เจาะลึก หากจําเป็น
เคอร์เนลตัวระบุฟังก์ชันไปยังฟังก์ชันที่กําหนดด้วยแอตทริบิวต์เคอร์เนล
...การจัดสรรอินพุตและเอาต์พุต

เรียกใช้เคอร์เนลกับการจองอินพุตตั้งแต่ 0 รายการขึ้นไป โดยระบบจะส่งอาร์กิวเมนต์เหล่านี้ต่อจากอาร์กิวเมนต์ rs_kernel หากเคอร์เนลที่ระบุแสดงผลค่า คุณต้องระบุการจัดสรรเอาต์พุตเป็นอาร์กิวเมนต์สุดท้าย การจัดสรรอินพุตทั้งหมดและการจัดสรรเอาต์พุต (หากมี) ต้องมีมิติข้อมูลเดียวกัน

นี่เป็นฟังก์ชันแบบซิงค์ การเรียกใช้ฟังก์ชันนี้จะแสดงผลหลังจากที่งานทั้งหมดเสร็จสมบูรณ์แล้วสำหรับเซลล์ทั้งหมดของการจัดสรรอินพุต หากฟังก์ชันเคอร์เนลแสดงผลค่าใดๆ การเรียกจะรอจนกว่าระบบจะเขียนผลลัพธ์ทั้งหมดไปยังการจัดสรรเอาต์พุต

จนถึง API ระดับ 23 ระบบจะระบุเคอร์เนลโดยนัยว่าเป็นเคอร์เนลที่มีชื่อว่า "root" ในสคริปต์ที่ระบุ และจะใช้การจัดสรรอินพุตได้เพียงรายการเดียว ตั้งแต่ API ระดับ 24 เป็นต้นไป คุณจะใช้ฟังก์ชัน Kernel ใดก็ได้ตามที่ระบุโดยอาร์กิวเมนต์ Kernel ระบบจะนำอาร์กิวเมนต์สคริปต์ออก โดยต้องกำหนดเคอร์เนลในสคริปต์ปัจจุบัน นอกจากนี้ คุณยังใช้อินพุตได้มากกว่า 1 รายการ

เช่น
float __attribute__((kernel)) square(float a) {
  return a * a;
}

void compute(rs_allocation ain, rs_allocation aout) {
  rsForEach(square, ain, aout);
}

rsForEachInternal : (API ภายใน) เปิดใช้งานเคอร์เนลในสคริปต์ปัจจุบัน (พร้อมหมายเลขช่อง)

void rsForEachInternal(int slot, rs_script_call_t* options, int hasOutput, int numInputs, rs_allocation* allocs); เพิ่มใน API ระดับ 24
พารามิเตอร์
ช่วงเวลา
ตัวเลือก
hasOutputระบุว่าเคอร์เนลสร้างเอาต์พุตหรือไม่
numInputsจํานวนการกําหนดอินพุต
allocsการจัดสรรอินพุตและเอาต์พุต

API ภายในสำหรับเปิดใช้งานเคอร์เนล

rsForEachWithOptions : เปิดใช้งานเคอร์เนลพร้อมตัวเลือก

void rsForEachWithOptions(rs_kernel kernel, rs_script_call_t* options, ... ...); เพิ่มใน API ระดับ 24
พารามิเตอร์
เคอร์เนลตัวระบุฟังก์ชันของฟังก์ชันที่กําหนดด้วยแอตทริบิวต์เคอร์เนล
ตัวเลือกตัวเลือกการเริ่ม
...การจัดสรรอินพุตและเอาต์พุต

เปิดใช้งานเคอร์เนลในลักษณะที่คล้ายกับ rsForEach อย่างไรก็ตาม ฟังก์ชันนี้จะประมวลผลเฉพาะเซลล์ในพาร์ทเนอร์ย่อยของพื้นที่อินเด็กซ์ที่ระบุไว้ในตัวเลือกแทนที่จะประมวลผลเซลล์ทั้งหมดในอินพุต เมื่อระบุพื้นที่ดัชนีอย่างชัดเจนด้วยตัวเลือก คุณไม่จําเป็นต้องจัดสรรอินพุตหรือเอาต์พุตสําหรับการเริ่มใช้งานเคอร์เนลโดยใช้ API นี้ หากมีการส่งการจัดสรร การจัดสรรต้องตรงกับจํานวนอาร์กิวเมนต์และค่าที่ฟังก์ชันเคอร์เนลคาดไว้ การจัดสรรเอาต์พุตจะแสดงอยู่ก็ต่อเมื่อเคอร์เนลมีค่าที่แสดงผลที่ไม่ใช่ void

เช่น
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); เพิ่มใน API ระดับ 23

ส่งคืนดัชนีในมิติข้อมูล Array0 ของเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ

บริบทเคอร์เนลมีลักษณะทั่วไปของการจัดสรรที่วนซ้ำและอินเด็กซ์ที่ไม่ค่อยได้ใช้ เช่น อินเด็กซ์ Array0

คุณสามารถเข้าถึงบริบทเคอร์เนลได้โดยเพิ่มพารามิเตอร์พิเศษชื่อ "context" ประเภท rs_kernel_context ลงในฟังก์ชันเคอร์เนล เช่น
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);
  //...
}

ฟังก์ชันนี้จะแสดงผล 0 หากไม่มีมิติข้อมูล Array0

rsGetArray1 : ดัชนีในมิติข้อมูล Array1 สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetArray1(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลดัชนีในมิติข้อมูล Array1 ของเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ ดูคำอธิบายบริบทได้ที่ rsGetArray0()

แสดงผล 0 หากไม่มีมิติข้อมูล Array1

rsGetArray2 : ดัชนีในมิติข้อมูล Array2 สำหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetArray2(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลดัชนีในมิติข้อมูล Array2 ของเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ ดูคำอธิบายบริบทได้ที่ rsGetArray0()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Array2

rsGetArray3 : ดัชนีในมิติข้อมูล Array3 สำหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetArray3(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลดัชนีในมิติข้อมูล Array3 ของเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ ดูคำอธิบายบริบทได้ที่ rsGetArray0()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Array3

rsGetDimArray0 : ขนาดของมิติข้อมูล Array0 สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimArray0(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล Array0 สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Array0

rsGetDimArray1 : ขนาดของมิติข้อมูล Array1 สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimArray1(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล Array1 สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผล 0 หากไม่มีมิติข้อมูล Array1

rsGetDimArray2 : ขนาดของมิติข้อมูล Array2 สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimArray2(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล Array2 สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Array2

rsGetDimArray3 : ขนาดของมิติข้อมูล Array3 สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimArray3(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล Array3 สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Array3

rsGetDimHasFaces : การมีใบหน้ามากกว่า 1 ใบหน้าสำหรับบริบทเคอร์เนลที่ระบุ

bool rsGetDimHasFaces(rs_kernel_context context); เพิ่มใน API ระดับ 23
คิกรีเทิร์น
แสดงผลเป็น "จริง" หากมีหน้าปัดมากกว่า 1 หน้า หากไม่ใช่จะแสดงผลเป็น "เท็จ"

หากเคอร์เนลกำลังวนซ้ำภาพลูกบาศก์ ฟังก์ชันนี้จะแสดงผลเป็น "จริง" หากมีมากกว่า 1 หน้า ในกรณีอื่นๆ ทั้งหมด ระบบจะแสดงผลเป็น "เท็จ" ดูคำอธิบายบริบทได้ที่ rsGetDimX()

rsAllocationGetDimFaces() คล้ายกัน แต่จะแสดงผลเป็น 0 หรือ 1 แทนบูลีน

rsGetDimLod : จำนวนระดับรายละเอียดสำหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimLod(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลจํานวนระดับรายละเอียดสําหรับบริบทเคอร์เนลที่ระบุ ซึ่งมีประโยชน์สำหรับ MIPMAP ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่ได้ใช้ระดับรายละเอียด

rsAllocationGetDimLOD() คล้ายกัน แต่จะแสดงผลเป็น 0 หรือ 1 แทนจำนวนระดับจริง

rsGetDimX : ขนาดของมิติข้อมูล X สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimX(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล X สําหรับบริบทเคอร์เนลที่ระบุ

บริบทเคอร์เนลมีลักษณะทั่วไปของการจัดสรรที่วนซ้ำและอินเด็กซ์ที่ไม่ค่อยได้ใช้ เช่น อินเด็กซ์ Array0

คุณสามารถเข้าถึงได้โดยเพิ่มพารามิเตอร์พิเศษชื่อ "context" ประเภท rs_kernel_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); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล X สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Y

หากต้องการดูมิติข้อมูลของการจัดสรรที่เฉพาะเจาะจง ให้ใช้ rsAllocationGetDimY()

rsGetDimZ : ขนาดของมิติข้อมูล Z สําหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetDimZ(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลขนาดของมิติข้อมูล Z สําหรับบริบทเคอร์เนลที่ระบุ ดูคําอธิบายบริบทได้ที่ rsGetDimX()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูล Z

หากต้องการดูมิติข้อมูลของการจัดสรรที่เฉพาะเจาะจง ให้ใช้ rsAllocationGetDimZ()

rsGetFace : พิกัดของใบหน้าสำหรับบริบทเคอร์เนลที่ระบุ

rs_allocation_cubemap_face rsGetFace(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลใบหน้าที่พบเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ ดูคำอธิบายบริบทได้ที่ rsGetArray0()

แสดงผล RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X หากไม่มีมิติข้อมูลใบหน้า

rsGetLod : ดัชนีในมิติข้อมูลระดับรายละเอียดสำหรับบริบทเคอร์เนลที่ระบุ

uint32_t rsGetLod(rs_kernel_context context); เพิ่มใน API ระดับ 23

แสดงผลดัชนีในมิติข้อมูลระดับรายละเอียดของเซลล์ที่ประมวลผล ตามที่ระบุโดยบริบทเคอร์เนลที่ระบุ ดูคำอธิบายบริบทได้ที่ rsGetArray0()

แสดงผลเป็น 0 หากไม่มีมิติข้อมูลระดับรายละเอียด