Jump to content

AMD Asynchronous Shading


Recommended Posts

პირველი რაც უნდა ავღნიშნო ის არის რომ AMD-ს პროცესორებისთვისაც კარგი ამბავია ის რასაც ვიდეოებისთვის აკეთებენ... Mantle და ახალი API წინ წაწევს ამდ-ს პროცესორების ბირთვების და ნაკადების წარმადობას

  • Upvote 1
Link to comment
Share on other sites


პირველი რაც უნდა ავღნიშნო ის არის რომ AMD-ს პროცესორებისთვისაც კარგი ამბავია ის რასაც ვიდეოებისთვის აკეთებენ... Mantle და ახალი API წინ წაწევს ამდ-ს პროცესორების ბირთვების და ნაკადების წარმადობას

+1

ეგრეა ნამდვილად, როგორც ეხლაა ასეთი საცოდავი აღარ იქნება ამდ-ს 8 ბირთვიანი პროცესორები რომლებოც უმეტეს შემთხვევაში ინტელის 4 ბირთვთან აგებენ, 4 ბირთვზე და 8 თრიდზე ლაპარაკი ზედმეტია :D

 

ველით მოკლედ ვინდოუს 10-ს რათა ყველა ამ ახალ ტექნოლოგიას ხორცი შეესხვას, იმედია რასაც გვპირდებიან 50% მაინც იქნება სუფთად შესრულებული :)

Link to comment
Share on other sites

მოკლედ ამ ბოლო დროს უფრო მეტი სიახლეები ჩნდება AMD-ს გრაფიკულ ბარათებთან დაკავშირებით.

ფაქტიურად ჰარდი საკმაოდ დახვეწილია, კარგი არქიტექტურითაა დაპროექტებული და ამიტომაც აქვს გარკვეული კუთხით მეტი პერფორმანსი. როგორც OpenCL გამოთვლებში ისე Dx12-ში საკმაოდ უწყობს ჰარდი ხელს, მანტლეზე რომ არაფერი ვთქვათ. მთავარია რომ ჰარდი GCN არქიტექტურის წყალობით საკმაოდ დამაიმედებელ მომავალს გვპირდება.

პროგრამულად და დრაივერების მხრივ მემგონი უკვე ყველაფერი რიგზეა, R300-სერიამ კი უნდა გაიელვოს ისე როგორც არასდროს.

Link to comment
Share on other sites

  • 4 months later...

ამ თემაში AMD-ს შესახებ ყველაფერი რაც DirectX 12-ს უკავშირდება აქ ნახავთ

Download AMD slide deck

40 გვერდიანი საიხლეებია განხილული. ზოგი მათგანი ნანახი არც მქონდა. ამდენი საიხლეები ყოფილა და გამშუქებელი არავინ ჩანდა :D

  • Upvote 1
Link to comment
Share on other sites

თვალი გადავავლე და wow მარ ააი რას ვერ მივხვდი პროცესორები რა შუაშია ? 

Link to comment
Share on other sites

თვალი გადავავლე და wow მარ ააი რას ვერ მივხვდი პროცესორები რა შუაშია ? 

DirectX 12-ის გამოსვლამდე იყო Mantle.

Mantle კი შეიქმნა იმ პრობლემების გამო რომელიც აქამდე არსებობდა. ერთ-ერთი ამ პრობლემათაგანი იყო ის რომ, თამაშის დროს პროცესორები არ იტვირთებოდნენ სრულად.

პროცესორის პირველ ბირთვზე მოდიოდა მთელი სამუშაოს 80-90 პროცენტი, ხოლო მეორე ბირთვს რჩებოდა გასაკეთებელი სამშაოს 10-20 პროცენტი. მესამე, მეოთხე, მეხუთე და ა.შ. ბირთვები რჩებოდნენ დაუტვირთავები. სხვა სიტყვებით რომ ვთქვათ, პროცესორის რესურსი რჩებოდა გამოუყენებელი. Mantle-ში და DirectX 12-ში, დაიტვირთება ყველა ბირთვი თანაბრად. ეს იმას ნიშნავს რომ დავალება შესრულდება პარალელურად და გაცილებით ჩქარა, ვიდრე აქამდე ხდებოდა.

ასე რომ DirectX 12 მხოლოდ ვიდეო კარტას არ უხსნის ხელ-ფეხს. მნიშვნელოვანია ისიც რომ ამიერიდან კროსი/სლი-ს შემთხვევაში ვიდეო ბარათების ვიდეო მეხსიერება შეიკრიბება და იქნება მაგალითად 2+2=4 GB და არა როგორც DirectX 11-ში იყო 2+2=2 GB

  • Upvote 1
Link to comment
Share on other sites

ეგ კი ვიცი მარა კონკრეტულად amd ს პროცესორები ნაგავი პროცესორები აქვ რაც მართალია მართალია როცა თანაბრად გადაინაწილებელ ბირთვები სამუშაოს მასე გაწურავს fury x ან 390x ? რაღაც მეეჭვებაა რაიმე საგრძობი შედეგი იყოს amd ს პროცესორებზე 

Link to comment
Share on other sites

ეგ კი ვიცი მარა კონკრეტულად amd ს პროცესორები ნაგავი პროცესორები აქვ რაც მართალია მართალია როცა თანაბრად გადაინაწილებელ ბირთვები სამუშაოს მასე გაწურავს fury x ან 390x ? რაღაც მეეჭვებაა რაიმე საგრძობი შედეგი იყოს amd ს პროცესორებზე 

იცი რაშია საქმე. აი ერთ ბირთვე როა დატვირთვა მაგიტომ აქვს ასე ცუდად საქმე ამდს პროცებს. მოგეხსენება ორჯერ სუსტი ბირთვები აქვს. მაგრამ ამდმ დღეს უკვე ჩანს რომ წარსულში დიდი გათვლები გააკეთა. ჩემ ვიდეოსაც კი აქვს ეს ტექნოლოგია 3 4 წლის კია. ეს ერთი და მეორე შექმნა 8 ბირთვიანი პროცეაორები მაშინ როცა არცერთი თამაში არ მოიხმარდა მათ. ასევე ზენ არქიტექტურაზე დაგეგმილია 16 ბირვი და HBM memory CPU ში ინტ ვიდეოსთვის. ნუ ძნელი მისახვედრი არაა ის რომ მისი გამოყენება უნდათ დისკრეტული ვიდეოსთვისაც. ასე რომ მასეთი დასკვნისგან თავს შევიკავებდი. სულ სხვა პირი უჩანს ამ ყველაფერს. შესაძლოა ძალიან დიდი სხვაობა ვნახოთ amd ში ბევრად დიდი ვიდრე ინტელში და ნვიდიაში ხდებოდა ბოლო 4 წლის მანძილზე.

 

Link to comment
Share on other sites

ეგ კი ვიცი მარა კონკრეტულად amd ს პროცესორები ნაგავი პროცესორები აქვ რაც მართალია მართალია როცა თანაბრად გადაინაწილებელ ბირთვები სამუშაოს მასე გაწურავს fury x ან 390x ? რაღაც მეეჭვებაა რაიმე საგრძობი შედეგი იყოს amd ს პროცესორებზე 

AMD–ს FX და APU–ებს რაც შეეხება, მანდ Mantle–ს წყალობით 290X ისეთ შედეგს აჩვენებდა როგორსაც ინტელის პროცესორებზე.

 

 

Mantle-ს წყალობით დღეს APU–ებს და FX პროცესორებს შეუძლიათ მაქსიმალურად მიახლოებული შედეგი მოგცეს რასაც ინტელი გაძლევს. Mantle–ს გამოშვებით AMD–მ თავის პროცესორებს ამოსუნთქვის საშუალება მისცა. როცა AMD–ს სუსტი პროცესორები ვიდეო კარტებს ვერ წურავდნენ, ახლა მთლად ასეც აღარაა.

სადღაც ამის სურათებიც იყო მარა ვეღარ ვპოულობ უფრო დაწვრილებით რომ ნახო...  თუ ვინმე იპოვის და დადებს ძალიან კარგი

მოკლედ AMD–ს პროცესორები თამაშებში ეხლა აღარ ჩამორჩება ინტელს ისე როგორც აქამდე იყო. Mantle–ს და DirectX 12-ში, ისინი უკვე კარგად იყენებენ ვიდეო კარტის რესურსს, ოღონდ არა DirectX 11-ში. Fury–ს გაწურავს თუ არა არ ვიცი, ტესტები გვიჩვენებს ახლო მომავალში.

Edited by lasha1616
Link to comment
Share on other sites

აქ დავდებ ამ ინფოს ჯობია

რა იყო გეწყინა 770-ს მატება რომ ქონდა, კიტხვა იყო ასეთი აქვს თუ არა  Nvidia-ს ვიდეო ბარატებს ზოგადად DX12-ს საფორთი და ასევე მაქსველს? და მანდ წერია რომ Maxwell-ს პირველ ტაობას არ გააჩნია სრული საფორთი იმიტომ რომ არ აქვს 31 Compute Queues გამოთველბის შესრულების მხარდაჭერა, ხოლო MAXwell 2.0-ს აქვს გააჩნია სრულის აფორთი და დადგენილია უკვე ეგ დად ადასტრუებული და Nvidia’s Maxwell 2.0 does support “Asynchronous Shaders”  

 

Oxide developer "Kollack" Made a lengthy response on Overclock.net forums last night, dispelling some of the myths surrounding Ashes of the Singularity and GPU Vendor Bias.

 

http://www.overclock.net/t/1569897/various-ashes-of-the-singularity-dx12-benchmarks/1200#post_24356995

 

TL;DR for Kollacks response:

 - Oxide has been working openly with Nvidia, AMD and Intel, but more with Nvidia in recent months than AMD or Intel.

 - If Ashes is biased, than any Unreal 4 game must be Nvidia biased as well (exposing a logical fallacy)

 - Ashes is not the only game being developed with Nitrous Engine, so it is not some benchmark outlier

 - Nvidia DX11 performance improved heavily over the past month, DX12 overhead still better for Nvidia than DX11 and has not been fully tweaked yet

 - A separate rendering path was made at Nvidia's request to disable async compute on Nvidia hardware. 

 - enabling DX12 async compute for Maxwell was an unmitigated disaster

 - Maxwell does not appear to support async Compute, at least not natively for DX12 gaming

 - Ashes uses a modest amount of DX12 Async Compute, Ashes is not a poster child for advanced GCN features.

 - Some newer console games in development are seeing up to 30% performance gain by turning on async compute for gaming effects

 - Minimum frame times in DX12 should be the same for AMD and Nvidia, but 290x benched slightly better minimum frame times than 980ti, which appears to be a variance in GPU hardware and not the application

 - AMD has not complained to Oxide about working with Nvidia, even though AMD are in a marketing agreement with Stardock

 - Oxide not in a fight with Nvidia. Nvidia not disputing what oxide said in their blog. Nvidia had a knee jerk reaction to oxide not giving in to Nvidia PR pressure to disable certain features in the benchmark.

 

 

Maxwell doesn't natively support Asynchronous Compute for DX12 gaming.

 

Kollack, from the same thread responds:

 

Given that AotS was first using Mantle before switching to DX12, its very interesting that they said "It was mostly opportunistic where we just took a few compute tasks we were already doing and made them asynchronous, Ashes really isn't a poster-child for advanced GCN features."

 

Kollacks comment "Whether or not Async Compute is better or not is subjective" carries more weight behind it than even I realized at first. His mention of Nvidia's scheduler reveals the reason why Nvidia May not even need Async Compute in DX12, if Nvidia releases drivers for every game to optimize their scheduler (on a game by game basis like they have done with DX11). It's a clue Kollack left that few are picking up on. It also means that AMD can fart around with drivers and not worry, while Nvidia may have to invest considerable time for each game to optimize their scheduler.

 

Kollack, again in the same thread:

 

Compute shaders rendered in parallel pipelines may very well be where developers are headed for gaming, or at least an option they are considering, if there is any merit to what Kollack says. Given the need for Asynchronous Compute in VR to reduce latency, it makes sense for now.

 

Kollack has responded regarding Nvidia and Async Compute Support. 

 

How exactly Nvidia will be implementing Async Compute Support is unknown at this time. Current understanding of Nvidia hardware suggests that Nvidia's approach will not be the same as AMD's, given the serial nature of Nvidia's render pipeline.

 

https://www.reddit.com/r/pcgaming/comments/3j1916/get_your_popcorn_ready_nv_gpus_do_not_support/

hilarious Explain Like I'm 5 version https://www.reddit.com/r/pcgaming/comments/3j1916/get_your_popcorn_ready_nv_gpus_do_not_support/cullj3d

http://gearnuke.com/amd-employee-claims-nvidias-maxwell-gpus-utterly-incapable-performing-async-compute/#

http://thegametechnician.com/2015/08/31/analysis-amds-long-game-realization/

 

AMD_Robert Dive's into the brawl: https://www.reddit.com/r/AdvancedMicroDevices/comments/3iwn74/kollock_oxide_games_made_a_post_discussing_dx12/

 

0.jpg

 

 

His comment "Maxwell is utterly incapable of performing asynchronous compute" should not be separated from the rest of the sentence: "without heavy reliance on slow context switching." 

 

AMD_Robert then clarifies that GCN 1.2 is indeed fully DX12_0 feature compliant, but missing DX12_1 features:

 

გაიგე ვანო არც maxwell-ს აქვს async shading-ს native მხარდაჭერა და ამის გაკეთება latency-ს დაკარგვა უჯდება რადგან მაგ დროს 290x-ს უკეთესი latency აქვს ვიდრე 980 ti-ს რაც გაცილებით უკეთეს smooth Gaming-ს ნიშნავს.

ასევე ის ფაქტიც ნათქვამია რომ nvidia-ს რაღაც feature-ების გათიშვა უნდოდა თავისივე PR-სთვის მარა არ გათიშეს nvidia-სგან ზეწოლის მუხედავად!

ისიც წერია რომ AMD-ზე არ დაჭირდება დიდად დრაივერების ოპტიმიზაცია და წვალება როცა Nvidia-ს მოუწევს ამის გაკეთება.

არაა ეს nvidia-ს კარტები DX12-სთვის რა არის DX11-სთვის შექმნილი და მანდ აკეთებენ საქმეს მარა AMD DX12-სთვის მზად იყო. Mantle როცა გააკეთეს მაშინ მომზადებული ქონდათ კარტები მასეთი Low level API-სთვის როგორიცაა DX12.

ეს პოსტიც წაიკითხე oculus_ზეა. Lol გრაფიკული კარტების მხარდაჭერაში nvidia-ს ინტელმაც კი აჯობაო http://www.overclockers.ge/index.php?/topic/27453-oculus-rift-ვირტუალურ-რეალური-მოწყობილობა-3d-თამაშისთვის/&do=findComment&comment=860865

აგერ აგიხსნით რას ნიშნავს ეს maxwell-ს აქვს 1 Graphics queue + 31 compute queues მაგრამ მათი გამოყენება გამოთვლებისთვის პარალელურად არ ხდება. მას შეუძლია გააკეთოს buffer-რება asynchronous compute-ს და გაუშვას ასინქრონულად რომელიმე მათგანი, მაგრამ არა პარალელურ რეჟიმში რამდენიმე მათგანი როგორც ამას AMD აკეთებს. ხო ასევე nvidia-ს არ შეუძია graphics queue და compute queue გაუშას პარალელურად მოხლოდ რიგრიგობით. ეს არაა ის asynchronous shading რაც AMD-ს აქვს. მიხვდით როგორ მუშაობს? აი ამიტომ წერია ზემოთაც რომ ნვიდიას სჭირდება sheduler რო როგორმე დაალაგონ ეს გამოთვლები. AMD-ს არ სჭირდება ეს. მისი ბარათები პარალელურ რეჟიმში ახორციელებენ გამოთვლებს, ამიტომ წარმადობაც გაცილებით უკეთესია და latency-ც ნაკლებია. აი ესაა რაც დიდი ხნის ინფორმაციის მოძიების შემდეგ გავიგე. სწორედ ამირომაა იმის თქმა რომ nvidia-ს აქვს asynchronous shading არასწორი. ეს განსხვავებული ტექნოლოგიაა მისი მუშაობის პრინციპით რაც ზემოთ ნათლად ავხსენი მათთვის ვისაც არ ესმის. AS შეიქმნა იმისთვის რო დავალებები გრაფიკული თუ გამოთვლითი პარალელურ რეჟიმში დროის დაუკარგავად შესრულებულიყო და GPU მუდამ დატვირთული ყოფილიყო idle წყვეტების გარეშე რასაც nvidia-ს Maxwell 2,0-ც ვერ შვება.

Link to comment
Share on other sites

მე ის დავწერე რომ საერთოდ არ გააჩნია Asynchronous shading-ი ამას როგორც AMD-ს წარმომადგენელმა თქვა და არ შეუძლია გამოთვლების გაკეთებაო, ეგ არის შეცდომა სიტყვაზე ეგ შეიძლება თქვა კეპლერზე ან მაქსველის პირველ ტაობაზე, მათ საერთოდ არ გააჩნიათ, მაგრამ შენ რაც დაწერე ეგ anandtech-ზეც წავიკითხე რომ მაგ გამოთვლების შესრულება პარალელურ რეჟიმში შეუძლია AMD-ს, და Nvidia-ს დაყოვნების ხარჯზე, რაც AMD-ს უპირატესობას აძლევს DX12 რეჟიმშიო, ამაზე მე არავის ვედავები, anadtech-მა ის თქვა რომ ვერდიქტი რომ nvidia-ს საერთოდ არ აქვს Asynchronous shading-ს ფუნქცია ეს არის არასწორიო და მე ამის ციტირება გავაკეთე, თორემ AMD-ს რომ უპირატესობაა ქვს DX12-ზე მე ამაზე დავწერე რამე? ის მოსაზრება რომ არ აქვს საერთოდ maxwell 2.0-ს ეგ არ არის მართებული და ყველა ამას ამბობს, თვითონ nvidia-დანაც ეგ დაგიკოპირეთ... ერთ რჩევას მოგცემ, მე მაგრად მკიდია და შენც გირჩევ დაიკიდო, მომავალი გვიჩვენებს ყველაფერს...

Link to comment
Share on other sites

Nvidia DX12 Issue http://tweakguides.com/

Nvidia Wanted Oxide dev DX12 benchmark to disable certain DX12 Features ? (content updated) http://www.guru3d.com/news-story/nvidia-wanted-oxide-dev-dx12-benchmark-to-disable-certain-settings.html

NVIDIA Will Fully Implement Async Compute Via Driver Support http://www.guru3d.com/news-story/nvidia-will-fully-implement-async-compute-via-driver-support.html

ამ თემაშიც მიდის მაგის განხილვა ისე http://forums.guru3d.com/showthread.php?t=402249 ბევრი ვინც ვერ ერკვევა რაღაც სისულეებს წერდა, თუმცა რამდენიმე საინტერესო რესპონსიც დაიდო, ისე კი ამდ უფრო მომზადებული შეხვდა DX12 გამოჩენას, ნვიდიას კი ფაქტიურათ ნოლიდან უწევს ბევრი რაღაცის დამუღამება და ათვისება თავის დრაივერებში, ამიტომ მარტო მაგ ერთი ბეტა ბენჩის რეზულტატებზე ძალიან შორ დაკსკნებს ნუ გავაკეთებთ, მაგისთვის საჭიროა კაკ მინიმუმ 10-12 სერიოზული თამაშის გამოსვლა DX12-ზე მანამდე კი ნვიდიაც დახვეწავს თავის დრაივერებს და მიკროსოფტიც ბევრ რაღაცას გამოასწორებს და დახვეწავს ვინდოუს 10-ის ახალ ბილდებში რომელიც დარწმუნებული ვარ DX12 და გეიმინგსაც შეეხება, თან ბევრი რამე დეველოპერებზეც იქნება დამოკიდებული რა თქმა უნდა, აი ამ ეტაპზე რომელ კარტას რისი მხარდაჭერა აქვს ვინდოუს 10 DX12 WDDM 2.0-ში ამ უტილიტით შეიძლება დადგენა: 

http://rghost.net/private/6gjXRS7fh/502c4c9192802190911782e1fbfbd8d8

პირადათ ჩემ კარტას აქვს რამდენიმე პალეზნი ფიშკა რომ გავატარე რაც კაკრაზ პროცესორის უკეთესათ გამოყენებაში დაეხმარება როცა გამოჩნდება პირველი DX12 იგრები, მაგრამ რაღაც ფიშკები როგორც მივხდი დრაივერიდანაც შეიძლება დაამატონ მოგვიანებით, ანუ ხარდს არაა აუცილებელი ქონდეს მაგის მხარდაჭერა, მაგ მხრივ მართლა საგრძნობლათ გამოირჩევა DX12 წინა DX ვერსიებიდან

 

Edited by George
  • Upvote 1
Link to comment
Share on other sites

როგორც ბოლოს ირკვევა, NVIDIA-ს მოუწევს სოფტის ხარჯზე აანაზღაუროს ის დანაკლისი რასაც AMD hardware დონეზე აღწევს ამას.

სოფტის ოპტიმიზაციით, როგორც გეიმ დეველოპერების მხრიდან, ასევე ნვიდიას მხრიდან, ასე თუ ისე მაქსიმალურად შეეცდებიან თამაშის მორგებას NVIDIA-ს ვიდეო ბარათებისთვის, მაგრამ საინტერესოა ძველ სერიებში რა სიტუაცია ექნება 600-700 სერიას.

გააჩნია ასევე თამაშის პროგრამულ მხარეს. თუ ისეთი თამაშია სადაც ასინქრონული შეიდერების გამოყენება არ მოხდება, მაშინ ასინქრონული შეიდერების არსებობას აზრი არააქვს ასეთ თამაშში.

ამ ეტაპზე ასეთი სიტუაციაა და ვნახოთ საბოლოოდ, ამით არ წყდება ყველაფერი. მომავალში კიდევ ახალ ტექნოლოგიას შემოგვთავაზებენ როგორც NVIDIA ასევე AMD.

 

 

 

P.S. ტექსტი წაიკთხეთ, მართლა სასაცილოა :D

 

 

Link to comment
Share on other sites

ეგ ის შუტკა არაა 970 აფიორის შემდეგ რომ დასცინოდნენ, რეალურათ კი რაღაცა მექსიკური ტოკ შოუ ყოფილა ღადავზე და სიტყვები იყო უბრალოთ შეცვლილი, ისე მარტო 900 სერიის კარტებს აქვს future level 3, amd 200 სერიას future level 1 აქვს და 300 ბოლომდე არაა დადგენილი 2-3 უნდა ქონდეს მაგაზე უკვე, მაგრამ როგორც ზევით დავწერე მანდ ლაპარაკი მიდის უფრო 2016-2018 წლის იგრებზე და კიდევ საკითხავია რამდენათ მოიკლავენ თავიდან დეველოპერები მაგ ფიშკების და ოპტიმიზაციების გამოყენებას, ტოპ იგრებს ალბათ ჩაუდებენ მაგრამ ყველაფერზე ეგ არ ექნება DX12 მხარდაჭერაც რომ ქონდეს თამაშს, ეგ Asynchronous Shading შეიძლება ისე ინტენსიურათ არ გამოიყენონ ყველა იგრაში ან საერთოდ არ იყოს საჭირო მაგის გამოყენება, შეიძლება ჟანრსაც გააჩნია და დვიჟოკს, ძალიან დიდ მარკენტინგსაც რომ აქვს ადგილი უკვე ვხდები მაგრამ რაღაც მატება და გაუმჯობესებები ნამდვილათ იქნება უმრავლესობა იგრებში DX12 მხარდაჭერით

Edited by George
Link to comment
Share on other sites

  • 5 months later...

ახალი HITMAN იქნება თამაში რომელსაც ამ ტექნოლოგიის საუკეთესო იმპლემენტაცია ექნება. 

http://www.gamersnexus.net/news-pc/2309-amd-hitman-dx12-ace-workload-management

http://www.pureoverclock.com/2016/02/hitman-taking-a-contract-on-asynchronous-shaders/

http://wccftech.com/hitman-feature-implementation-dx12-async-compute-amd/

Hitman will leverage unique DX12 hardware found in only AMD Radeon GPUs—called asynchronous compute engines—to handle heavier workloads and better image quality without compromising performance. PC gamers may have heard of asynchronous compute already, and Hitman demonstrates the best implementation of this exciting technology yet. By unlocking performance in GPUs and processors that couldn’t be touched in DirectX 11, gamers can get new performance out of the hardware they already own.

იმედია გაამართლებს ეს ტექნოლოგია რომელიც მხოლოდ AMD-ს ოდითგანვე ქონდა. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.