ডি 3 ডি / ডিএক্সজিআই হ'ল ফুলস্ক্রিন স্থানান্তর


9

আমার একটি ডি 3 ডি 11 অ্যাপ্লিকেশন রয়েছে এবং আমি সঠিক ফুলস্ক্রিন সাপোর্ট যুক্ত করতে চাই। এখন আমি ডিএক্সজিআইকে আমার উইন্ডোটি আমার জন্য পূর্ণস্ক্রিনে স্যুইচ করতে দিতে পারি এবং আমি এই ধারণার অধীনে রয়েছি যে ডিএক্সজিআই তাদের ব্লিটিংয়ের পরিবর্তে সোয়াপ চেইনটি ফ্লিপ ফ্রন্ট এবং ব্যাকবফার তৈরি করার জন্য প্রয়োজনীয় সমস্ত কিছুর যত্ন নেবে।

তবে, ডিএক্সজিআইকে সুইচটি সম্পাদন করা একাধিক মনিটরের সেটআপের সাথে অবিশ্বাস্য বলে মনে হচ্ছে - সেকেন্ডারি স্ক্রিনগুলি সময়ের বেশিরভাগ ক্ষেত্রে স্যুইচ হওয়ার পরে সম্পূর্ণ কালো থাকে, এতে কোনও আপাত কারণ বা প্যাটার্ন নেই।

পূর্ণস্ক্রিন উইন্ডোটি পাওয়ার আগে এবং ডেস্কটপের বাকি অংশগুলি অন্যান্য স্ক্রিনে প্রদর্শিত হওয়ার আগে কয়েকবার সময় নিতে পারে ।

স্পষ্টতই আমি এর সাথে একা নই, ব্যাটলফিল্ড 3 এবং ওয়াবের অনেক লোকের কাছে একই সমস্যা রয়েছে বলে মনে হয়।

এখন, আসল প্রশ্ন: আমি অনুমান করি যেহেতু সেই সমস্ত এএএ গেম ডেভ সংস্থাগুলিও এটি কাজ করতে পারে না, তাই আমার সবচেয়ে বড় আশাটি হ'ল কোনওভাবে নিজেকে পূর্ণস্ক্রিনে স্যুইচটি সম্পাদন করা।

আমার উইন্ডো / সোয়াপচেইনকে যথাযথ, বাফার-উল্টানো ফুলস্ক্রিন মোডে উন্নত করতে আমি কি কিছু করতে পারি?


এই লেখার সময়, ওয়ার্ক অব ওয়ার্ক্র্যাটের বর্তমান সংস্করণে আপনার উল্লিখিত ডিসপ্লে মোডের কনফিগারেশন সংক্রান্ত সমস্যা / মেমরি ফাঁস নেই। তারা অবশ্যই সমস্যাযুক্ত ছিল তবে 7.3.2 হিসাবে ঠিক করা হয়েছে
গ্যাজার

উত্তর:


3

আমার জ্ঞান অনুসারে, কেবলমাত্র কাজটি হ'ল:

 DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);

আপনার আবেদনের শুরুতে এবং:

DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);

ছাড়ার আগে। স্থানান্তরের জন্য, যথারীতি এগিয়ে যান। আমি InvalidateRect(NULL, NULL, true)পূর্ণস্ক্রিনে স্যুইচ করার ঠিক পরে চেষ্টা করেছি কোনও ফল হয়নি। আশাকরি এটা সাহায্য করবে.


সব কিছু চেষ্টা করার পরেও মনে হচ্ছে আপনি ঠিক আছেন। কেবল নির্ভরযোগ্যভাবে রচনা অক্ষম করা এটিকে ঘটতে বাধা দেয়। আমি যে উত্তরটির জন্য আশা করেছিলাম তা নয়, তবে আমি মনে করি না তার চেয়ে ভাল।

নোট করুন যে উইন্ডোজ 8.1 এবং পরে এই সেটিংটিকে উপেক্ষা করে। আপনি DWM অক্ষম করতে পারবেন না।
চক ওয়ালবর্ন

1

আপনি প্রকৃতপক্ষে একমাত্র এই সমস্যাটির মুখোমুখি নন । প্রথম জিনিস যাচাই করে দেখুন: আপনি যে ভিডিও কার্ডটি ব্যবহার করছেন তার জন্য আপনি সর্বশেষতম / বিটা / শীর্ষস্থানীয় ড্রাইভার ব্যবহার করছেন তা নিশ্চিত করুন।

এখন, আমি বলব যে কেবলমাত্র একটি অল্প সুযোগ আছে যে আপনি এই কাজটি স্বয়ংক্রিয় DXGI প্রয়োগের চেয়ে আরও ভালভাবে পেতে পারেন। এই ধরণের সমস্যাটি অ্যাডাপ্টার বিক্রেতা, ড্রাইভার সংস্করণ এবং মনিটরের কনফিগারেশনের উপর নির্ভর করে। সুতরাং এটি একটি মেশিনে স্থির করে আপনি এটিকে আরও ভেঙে ফেলতে পারেন।

আমি ডাইরেক্টএক্স 9 এর অন্ধকার যুগে ফিরে যাওয়ার বিরুদ্ধে পরামর্শ দিচ্ছি যেখানে আপনাকে হাতে হাতে সবকিছু করতে হয়েছিল। একটি ভাল ধারণা স্বয়ংক্রিয় স্যুইচিং ঠিক করার চেষ্টা করা হবে। অনুসরণ করতে কিছু ট্রেইল:

  • (স্পার্স) ডকুমেন্টেশন সাবধানে পড়ুন।

  • আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে এখানে বর্ণিত অনুসারেWM_SIZE / পুরো-স্ক্রিন থেকে স্যুইচ করার পরে আপনি যে ইভেন্টটি পেয়েছেন তাতে সাড়া দেওয়ার চেষ্টা করুন । যদি আপনি তা করেন, নিশ্চিত করুন যে আপনি সঠিকভাবে কল করার আগে ফিরে বাফার সব রেফারেন্স মুক্তি হয় তা নিশ্চিত ResizeBuffers, সেখানে বর্ণিত । এটি করতে ব্যর্থ হওয়া এই ধরণের অদ্ভুত আধা-সমস্যার কারণ হতে পারে।

  • সরাসরি পূর্ণ-স্ক্রিনে শুরু করার চেষ্টা করুন, এবং একটি অঙ্কিত ডিসপ্লে মোডের সাথে আপনার অদলবদল চেইন তৈরি করার চেষ্টা করুন । যদি এটি সর্বদা কাজ করে তবে এর অর্থ হতে পারে আপনি পরিচালনা করার সময় একটি গণনা করা মোড ব্যবহার করছেন না WM_SIZE(বা পুরোপুরি নয়, রিফ্রেশ রেটের মতো বিষয়গুলি গুরুত্বপূর্ণ হতে পারে)।

  • অদলবদ্বার প্রভাব এবং আপনার অদলবদল চেইনের বর্ণনার বাফার কাউন্ট দিয়ে ঘুরেফিরে চেষ্টা করুন । আপনার সম্ভবত ব্যবহার করা উচিত DXGI_SWAP_EFFECT_SEQUENTIALএবং এ BufferCount> = ২ ব্যবহার করা উচিত সম্ভবত আপনার ড্রাইভারটির আরও "বহিরাগত" বিকল্পের জন্য খুব কম সমর্থন রয়েছে।


বাফারগুলির আকার পরিবর্তন করা ভাল কাজ করে। আমি সমস্ত অদলবদলের প্রভাবও চেষ্টা করে দেখেছি, এগুলি কোনও পার্থক্য বলে মনে হচ্ছে না এবং আমি সর্বদা ২ টি বাফার ব্যবহার করেছি। আমি পূর্ণস্ক্রিন জিনিসটি চেষ্টা করবো, (যদিও "এনুমারেটেড ডিসপ্লের একটি পদ্ধতি ব্যবহার করে" আপনি কী বোঝাতে চেয়েছিলেন তা আমি জানি না - যখন ডাব্লুএমএসআইজেজে সাড়া দেওয়ার সময় আমি যা করি তা রেজাইজবার্স, আরগ্যুশন হিসাবে ডিসপ্লে মোডটি পাস করার কোথাও নেই) ) তবে আমি স্বতঃস্ফূর্তভাবে উইন্ডোজ 8 ইনস্টল করেছি এবং কী অনুমান করি, আমি এখনই সমস্যার প্রতিলিপি করতে পারি না ..

উইন্ডোজ 7 এ ফিরে এসে শুরু থেকে ফুলস্ক্রিনে সোয়াপচেইন তৈরি করার চেষ্টা করেছিলেন, তবে বিষয়টি এখনও অব্যাহত রয়েছে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.