নাম স্ট্রিং
XR_ANDROID_performance_metrics
এক্সটেনশন প্রকার
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
466
সর্বশেষ সংশোধিত তারিখ
2024-09-06
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
এক্সটেনশন এবং সংস্করণ নির্ভরতা
অবদানকারী
দিমিত্রি কোটভ, গুগল
লেভানা চেন, গুগল
জ্যারেড ফাইন্ডার, গুগল
স্পেন্সার কুইন, গুগল
ওভারভিউ
এই এক্সটেনশনটি বর্তমান XR ডিভাইস, কম্পোজিটর এবং XR অ্যাপ্লিকেশনের বিভিন্ন পারফরম্যান্স মেট্রিক্স কাউন্টার গণনা এবং অনুসন্ধান করার জন্য API প্রদান করে। বিকাশকারীরা পারফরম্যান্স বিশ্লেষণ করতে পারে এবং সংগ্রহ করা কর্মক্ষমতা মেট্রিক্স কাউন্টারগুলি ব্যবহার করে XR অ্যাপ্লিকেশনের লক্ষ্যযুক্ত অপ্টিমাইজেশন করতে পারে। কাউন্টার রিডের উপর ভিত্তি করে অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করা উচিত নয়।
পারফরম্যান্স মেট্রিক্স কাউন্টারগুলি রুট পাথ /perfmetrics_android- এর অধীনে পূর্বনির্ধারিত XrPath
মানগুলিতে সংগঠিত। একটি অ্যাপ্লিকেশন xrEnumeratePerformanceMetricsCounterPathsANDROID এর মাধ্যমে উপলব্ধ কাউন্টারগুলিকে জিজ্ঞাসা করতে পারে । এখানে পারফরম্যান্স মেট্রিক্স কাউন্টার পাথগুলির একটি তালিকা রয়েছে যা Android ডিভাইসগুলিতে সরবরাহ করা যেতে পারে :
- /perfmetrics_android/app/cpu_frametime (মিলিসেকেন্ড, ফ্লোট) - ওয়ালক্লক সময় ক্লায়েন্ট একটি ফ্রেম প্রক্রিয়া করতে ব্যয় করেছে।
- /perfmetrics_android/app/gpu_frametime (মিলিসেকেন্ড, ফ্লোট) - ওয়ালক্লক সময় ক্লায়েন্ট প্রতি ফ্রেমে জিপিইউ কাজ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে। নোট:
- একটি উচ্চ অপেক্ষার সময় মানে হতে পারে যে GPU অন্যান্য কাজে ব্যস্ত ছিল, অগত্যা এই ক্লায়েন্টটি খুব বেশি GPU কাজ করছে।
- কম্পোজিটরের দ্বারা চেক করার সময় রেন্ডারিং ইতিমধ্যেই সম্পূর্ণ হলে GPU অপেক্ষার সময় শূন্য হতে পারে ৷
- /perfmetrics_android/app/cpu_utilization (শতাংশ, ফ্লোট) - সময়ের সাথে গড় অ্যাপ CPU ব্যবহারের হার।
- মাল্টি-কোর প্রসেসরে এটি 100% এর বেশি হতে পারে ।
- /perfmetrics_android/app/gpu_utilization (শতাংশ) - অ্যাপের মোট GPU ব্যবহারের হার সময়ের সাথে গড়।
- /perfmetrics_android/app/motion_to_photon_latency (মিলিসেকেন্ড, ফ্লোট) - ব্যবহারকারীর সূচনা করা মোশন ইভেন্ট থেকে ডিসপ্লেতে সংশ্লিষ্ট ফিজিক্যাল ইমেজ আপডেট পর্যন্ত সময়।
- /perfmetrics_android/compositor/cpu_frametime (মিলিসেকেন্ড, ফ্লোট) - একটি ফ্রেম প্রক্রিয়া করতে ওয়ালক্লক সময় কম্পোজিটর ব্যয় করে।
- /perfmetrics_android/compositor/gpu_frametime (মিলিসেকেন্ড, ফ্লোট) - ওয়ালক্লক টাইম কম্পোজিটর প্রতি ফ্রেমে জিপিইউ কাজ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে।
- /perfmetrics_android/compositor/dropped_frame_count (পূর্ণসংখ্যা) - সমস্ত অ্যাপ থেকে বাদ দেওয়া ফ্রেমের মোট সংখ্যা।
- /perfmetrics_android/compositor/frames_per_second (float) - প্রতি সেকেন্ডে ডিভাইসে আঁকা কম্পোজিটর ফ্রেমের সংখ্যা।
- /perfmetrics_android/device/cpu_utilization_average (শতাংশ, ফ্লোট) - ডিভাইসের CPU ব্যবহারের হার সমস্ত কোর জুড়ে গড় এবং সময়ের সাথে গড়।
- /perfmetrics_android/device/cpu_utilization_worst (শতাংশ, ফ্লোট) - সময়ের সাথে গড় সবচেয়ে খারাপ পারফর্মিং কোরের ডিভাইস CPU ব্যবহারের হার।
- /perfmetrics_android/device/cpu0_utilization এর মাধ্যমে /perfmetrics_android/device/cpuX_utilization (শতাংশ, ফ্লোট, X হল CPU কোরের সংখ্যা মাইনাস ওয়ান) - সময়ের সাথে সাথে CPU কোরের গড় প্রতি ডিভাইস CPU ব্যবহারের হার।
- /perfmetrics_android/device/cpu_frequency (MHz, float) - ডিভাইসের CPU ফ্রিকোয়েন্সি সমস্ত কোর জুড়ে গড় এবং সময়ের সাথে গড়।
- /perfmetrics_android/device/gpu_utilization (শতাংশ, ফ্লোট) - ডিভাইস GPU ব্যবহারের হার সময়ের সাথে গড়।
একটি সেশন তৈরি হওয়ার পরে, একটি অ্যাপ্লিকেশন xrSetPerformanceMetricsStateANDROID ব্যবহার করে সেই সেশনের জন্য পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম করতে পারে। একটি অ্যাপ্লিকেশন xrQueryPerformanceMetricsCounterANDROID ব্যবহার করে পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম করা আছে এমন একটি সেশনে একটি পারফরম্যান্স মেট্রিক্স কাউন্টার জিজ্ঞাসা করতে পারে , অথবা কর্মক্ষমতা মেট্রিক্স সিস্টেম সক্ষম থাকলে জিজ্ঞাসা করতে xrGetPerformanceMetricsStateANDROID ব্যবহার করতে পারে।
এই এক্সটেনশনের কার্যকারিতা সক্ষম করার জন্য, এক্সটেনশন বিভাগে নির্দেশিত হিসাবে XrInstanceCreateInfo::enabledExtensionNames প্যারামিটার ব্যবহার করে অ্যাপ্লিকেশনটিকে এক্সটেনশনটির নাম xrCreateInstance- এ পাস করা উচিত ।
নতুন পতাকা প্রকার
typedef XrFlags64 XrPerformanceMetricsCounterFlagsANDROID;
// Flag bits for XrPerformanceMetricsCounterFlagsANDROID
static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_ANDROID = 0x00000001;
static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_ANDROID = 0x00000002;
static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_ANDROID = 0x00000004;
নতুন Enum ধ্রুবক
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_PERFORMANCE_METRICS_STATE_ANDROID
-
XR_TYPE_PERFORMANCE_METRICS_COUNTER_ANDROID
নতুন Enums
typedef enum XrPerformanceMetricsCounterUnitANDROID {
XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_ANDROID = 0,
XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_ANDROID = 1,
XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_ANDROID = 2,
XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_ANDROID = 3,
XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_ANDROID = 4
} XrPerformanceMetricsCounterUnitANDROID;
নতুন কাঠামো
XrPerformanceMetricsStateANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrPerformanceMetricsStateANDROID {
XrStructureType type;
void* next;
XrBool32 enabled;
} XrPerformanceMetricsStateANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। - কর্মক্ষমতা মেট্রিক্স সিস্টেম সক্ষম করা হয়েছে তা নির্দেশ করার জন্য
enabled
XR_TRUE
তে সেট করা হয়েছে, অন্যথায়XR_FALSE
স্থিতি পাওয়ার সময়। অবস্থা সেট করার সময়, কর্মক্ষমতা মেট্রিক্স সিস্টেম সক্ষম করতেXR_TRUE
এবং এটি নিষ্ক্রিয় করতেXR_FALSE
তে সেট করুন৷
পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম বা অক্ষম করতে xrSetPerformanceMetricsStateANDROID কল করার সময় XrPerformanceMetricsStateANDROID ইনপুট হিসাবে সরবরাহ করা হয়। পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম হলে জিজ্ঞাসা করার জন্য xrGetPerformanceMetricsStateANDROID কল করার সময় XrPerformanceMetricsStateANDROID একটি আউটপুট প্যারামিটার হিসাবে পপুলেট করা হয়৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_performance_metrics
এক্সটেনশনটি অবশ্যই XrPerformanceMetricsStateANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_PERFORMANCE_METRICS_STATE_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
XrPerformanceMetricsCounterANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrPerformanceMetricsCounterANDROID {
XrStructureType type;
void* next;
XrPerformanceMetricsCounterFlagsANDROID counterFlags;
XrPerformanceMetricsCounterUnitANDROID counterUnit;
uint32_t uintValue;
float floatValue;
} XrPerformanceMetricsCounterANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
counterFlags
হল XrPerformanceMetricsCounterFlagsANDROID- এর একটি বিটমাস্ক যা মান সদস্যদের বৈধতা বর্ণনা করে। -
counterUnit
হল XrPerformanceMetricsCounterUnitANDROID- এর একটি তালিকা যা পরিমাপের একক বর্ণনা করে। -
uintValue
হলuint32_t
ফরম্যাটে কাউন্টার ভ্যালু। এটি বৈধ যদিcounterFlags
XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_ANDROID
থাকে। -
floatValue
হলfloat
ফরম্যাটে কাউন্টার ভ্যালু। এটি বৈধ যদিcounterFlags
XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_ANDROID
থাকে।
XrPerformanceMetricsCounterANDROID রিয়েল-টাইম পারফরম্যান্স মেট্রিক্স কাউন্টার তথ্য জিজ্ঞাসা করার জন্য xrQueryPerformanceMetricsCounterANDROID কল করে জনবহুল হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_performance_metrics
এক্সটেনশনটি অবশ্যই XrPerformanceMetricsCounterANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_PERFORMANCE_METRICS_COUNTER_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
counterFlags
অবশ্যই 0 বা XrPerformanceMetricsCounterFlagsANDROID মানগুলির একটি বৈধ সমন্বয় হতে হবে -
counterUnit
অবশ্যই একটি বৈধ XrPerformanceMetricsCounterUnitANDROID মান হতে হবে
নতুন ফাংশন
xrEnumeratePerformanceMetricsCounterPathsANDROID ফাংশন রানটাইম দ্বারা সমর্থিত সমস্ত পারফরম্যান্স মেট্রিক্স কাউন্টার পাথ গণনা করে, এটি সংজ্ঞায়িত করা হয়েছে:
XrResult xrEnumeratePerformanceMetricsCounterPathsANDROID(
XrInstance instance,
uint32_t counterPathCapacityInput,
uint32_t* counterPathCountOutput,
XrPath* counterPaths);
পরামিতি বিবরণ
-
instance
হল একটি XrInstance হ্যান্ডেল যা আগে xrCreateInstance দিয়ে তৈরি করা হয়েছিল। -
counterPathCapacityInput
হলcounterPaths
অ্যারের ক্ষমতা, অথবা 0 প্রয়োজনীয় ক্ষমতা পুনরুদ্ধার করার অনুরোধ নির্দেশ করার জন্য। -
counterPathCountOutput
রানটাইম দ্বারাcounterPaths
লিখিত গণনা বা প্রয়োজনীয় ক্ষমতা পূরণ করা হয় যে ক্ষেত্রেcounterPathCapacityInput
অপর্যাপ্ত হয়। -
counterPaths
হল রানটাইম দ্বারা ভরাXrPath
এর একটি অ্যারে যাতে সমস্ত উপলব্ধ কর্মক্ষমতা মেট্রিক্স কাউন্টার থাকে, কিন্তুcounterPathCapacityInput
0 হলে তাNULL
হতে পারে । - প্রয়োজনীয়
counterPaths
আকার পুনরুদ্ধার করার বিশদ বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_performance_metrics
এক্সটেনশনটি xrEnumeratePerformanceMetricsCounterPathsANDROID কল করার আগে সক্রিয় করা আবশ্যক -
instance
অবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
counterPathCountOutput
একটিuint32_t
মানের একটি পয়েন্টার হতে হবে -
counterPathCapacityInput
0 না হলে,counterPaths
অবশ্যইcounterPathCapacityInput
XrPath
মানগুলির একটি অ্যারের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SIZE_INSUFFICIENT
xrSetPerformanceMetricsStateANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrSetPerformanceMetricsStateANDROID(
XrSession session,
const XrPerformanceMetricsStateANDROID* state);
পরামিতি বিবরণ
-
session
হল একটি XrSession হ্যান্ডেল যা আগে xrCreateSession দিয়ে তৈরি করা হয়েছিল। -
state
হল একটি XrPerformanceMetricsStateANDROID কাঠামোর একটি নির্দেশক৷
xrSetPerformanceMetricsStateANDROID ফাংশন কর্মক্ষমতা মেট্রিক্স সিস্টেমকে সক্ষম বা নিষ্ক্রিয় করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_performance_metrics
এক্সটেনশনটি অবশ্যই xrSetPerformanceMetricsStateANDROID কল করার আগে সক্রিয় করতে হবে -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
state
অবশ্যই একটি বৈধ XrPerformanceMetricsStateANDROID কাঠামোর একটি নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SESSION_LOST
xrGetPerformanceMetricsStateANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetPerformanceMetricsStateANDROID(
XrSession session,
XrPerformanceMetricsStateANDROID* state);
পরামিতি বিবরণ
-
session
হল একটি XrSession হ্যান্ডেল যা আগে xrCreateSession দিয়ে তৈরি করা হয়েছিল। -
state
হল একটি XrPerformanceMetricsStateANDROID কাঠামোর একটি নির্দেশক৷
xrGetPerformanceMetricsStateANDROID ফাংশন কার্যক্ষমতা মেট্রিক্স সিস্টেমের বর্তমান অবস্থা পায়।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_performance_metrics
এক্সটেনশনটি অবশ্যই xrGetPerformanceMetricsStateANDROID কল করার আগে সক্রিয় করতে হবে -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
state
অবশ্যই একটি XrPerformanceMetricsStateANDROID কাঠামোর একটি নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SESSION_LOST
xrQueryPerformanceMetricsCounterANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrQueryPerformanceMetricsCounterANDROID(
XrSession session,
XrPath counterPath,
XrPerformanceMetricsCounterANDROID* counter);
পরামিতি বিবরণ
-
session
হল একটি XrSession হ্যান্ডেল যা আগে xrCreateSession দিয়ে তৈরি করা হয়েছিল। -
counterPath
হল একটি বৈধ কর্মক্ষমতা মেট্রিক্স কাউন্টার পাথ। -
counter
হল একটি XrPerformanceMetricsCounterANDROID কাঠামোর একটি নির্দেশক।
xrQueryPerformanceMetricsCounterANDROID ফাংশন একটি কর্মক্ষমতা মেট্রিক্স কাউন্টার জিজ্ঞাসা করে।
xrQueryPerformanceMetricsCounterANDROID ব্যবহার করে মেট্রিক্স জিজ্ঞাসা করার আগে অ্যাপ্লিকেশনটিকে xrSetPerformanceMetricsStateANDROID-এ কল করে পারফরম্যান্স মেট্রিক্স সিস্টেম সক্রিয় করা উচিত ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrQueryPerformanceMetricsCounterANDROID কল করার আগে
XR_ANDROID_performance_metrics
এক্সটেনশনটি সক্রিয় করা আবশ্যক -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
counter
অবশ্যই একটি XrPerformanceMetricsCounterANDROID কাঠামোর একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SESSION_LOST
-
XR_ERROR_PATH_UNSUPPORTED
-
XR_ERROR_PATH_INVALID