নাম স্ট্রিং
 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 বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি।
-  কর্মক্ষমতা মেট্রিক্স সিস্টেম সক্ষম করা হয়েছে তা নির্দেশ করার জন্য সক্রিয় enabledXR_TRUEতে সেট করা হয়েছে, অন্যথায়XR_FALSEস্থিতি পাওয়ার সময়। অবস্থা সেট করার সময়, কর্মক্ষমতা মেট্রিক্স সিস্টেম সক্ষম করতেXR_TRUEএবং এটি নিষ্ক্রিয় করতেXR_FALSEতে সেট করুন৷
পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম বা অক্ষম করতে xrSetPerformanceMetricsStateANDROID কল করার সময় XrPerformanceMetricsStateANDROID ইনপুট হিসাবে সরবরাহ করা হয়। পারফরম্যান্স মেট্রিক্স সিস্টেম সক্ষম হলে জিজ্ঞাসা করার জন্য xrGetPerformanceMetricsStateANDROID কল করার সময় XrPerformanceMetricsStateANDROID একটি আউটপুট প্যারামিটার হিসাবে পপুলেট করা হয়৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-  XR_ANDROID_performance_metricsএক্সটেনশনটি অবশ্যই XrPerformanceMetricsStateANDROID ব্যবহার করার আগে সক্রিয় করতে হবে
-  typeXR_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ফরম্যাটে কাউন্টার ভ্যালু। এটি বৈধ যদিcounterFlagsXR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_ANDROIDথাকে।
-  floatValueহলfloatফরম্যাটে কাউন্টার ভ্যালু। এটি বৈধ যদিcounterFlagsXR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_ANDROIDথাকে।
XrPerformanceMetricsCounterANDROID রিয়েল-টাইম পারফরম্যান্স মেট্রিক্স কাউন্টার তথ্য জিজ্ঞাসা করার জন্য xrQueryPerformanceMetricsCounterANDROID কল করে জনবহুল হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
-  XR_ANDROID_performance_metricsএক্সটেনশনটি অবশ্যই XrPerformanceMetricsCounterANDROID ব্যবহার করার আগে সক্রিয় করতে হবে
-  typeXR_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এর একটি অ্যারে যাতে সমস্ত উপলব্ধ কর্মক্ষমতা মেট্রিক্স কাউন্টার থাকে, কিন্তুcounterPathCapacityInput0 হলে তাNULLহতে পারে ।
-  প্রয়োজনীয় counterPathsআকার পুনরুদ্ধার করার বিশদ বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
বৈধ ব্যবহার (অন্তর্নিহিত)
-  XR_ANDROID_performance_metricsএক্সটেনশনটি xrEnumeratePerformanceMetricsCounterPathsANDROID কল করার আগে সক্রিয় করা আবশ্যক
-  instanceঅবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে
-  counterPathCountOutputএকটিuint32_tমানের একটি পয়েন্টার হতে হবে
-  counterPathCapacityInput0 না হলে,counterPathsঅবশ্যইcounterPathCapacityInputXrPathমানগুলির একটি অ্যারের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-  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
OpenXR™ এবং OpenXR লোগো হল The Khronos Group Inc. এর মালিকানাধীন ট্রেডমার্ক এবং চীন, ইউরোপীয় ইউনিয়ন, জাপান এবং যুক্তরাজ্যে ট্রেডমার্ক হিসেবে নিবন্ধিত।
